Вам нужно all
вдоль второй оси:
np.where((labels == [1,0,0,0,0,0,0,0]).all(1))
См. Этот меньший пример:
labels = np.array([[1,0,0,1,0,0,0,0],
[0,0,0,0,0,1,1,0],
[1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1]])
(labels == [1,0,0,0,0,0,0,0])
array([[ True, True, True, False, True, True, True, True],
[False, True, True, True, True, False, False, True],
[ True, True, True, True, True, True, True, True],
[False, True, True, True, True, True, True, False]])
Обратите внимание, что выше Сравнение просто возвращает массив той же формы, что и labels
, поскольку сравнение имело место вдоль строк labels
. Вам нужно объединиться с all
, чтобы проверить, все ли элементы в строке True
:
(labels == [1,0,0,0,0,0,0,0]).all(1)
#array([False, False, True, False])