Сравните с трансляцией и найдите индекс True
в результате по последней оси.
>>> a = np.array(['dog', 'cat', 'dog', 'dog', 'dog', 'cat', 'cat', 'dog'])
>>> b = np.array(['dog','cat'])
>>> c = a[:,None] == b
>>> c.argmax(axis=-1)
array([0, 1, 0, 0, 0, 1, 1, 0], dtype=int64)
>>> a[:,None] == b
array([[ True, False],
[False, True],
[ True, False],
[ True, False],
[ True, False],
[False, True],
[False, True],
[ True, False]])