У меня есть массив numpy
my_array = np.array([[1,2,3,4],[5,6,7,8],[0,0,0,0],[1,2,3,4],[0,0,0,0],[0,0,0,1]])
и я хотел бы получить весь индекс, когда массив содержит только нулевые значения:
index 2 -> [0,0,0,0]
index 4 -> [0,0,0,0]
Обсуждение с похожей проблемой существует: Найти индексы элементов, равные нулю, в массиве NumPy
но в этом решении мы получаем значения равные нулю, а не получаем массив с нулями, как я хочу.
Спасибо за помощь.



Вы можете использовать np.argwhere с np.all для получения индексов строк, где все элементы == 0:
In [11] np.argwhere((my_array == 0).all(axis=1))
Out[11]:
array([[2],
[4]], dtype=int64)
Или np.nonzero вместо np.argwhere дает немного более приятный результат:
In [12] np.nonzero((my_array == 0).all(axis=1))
Out[12]: (array([2, 4], dtype=int64),)