numpy.where - Странное поведение: новые элементы, возникающие из ниоткуда? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь использовать numpy.where для удаления элементов [0,0,0] из массива. Тестовый массив имеет только один элемент [0,0,0], помещенный в первую позицию. Он имеет форму (800,3), поэтому он должен быть (799,3) (после изменения формы) или (2397,) после выбора. Однако полученный массив (2937,).

Мой код:

array[np.where(array != [0,0,0])]

Это какая-то ошибка?

P.D: dtype = 'uint8', если это полезно.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы проверяете все элементы во всех столбцах, вам нужно использовать all вдоль первой оси, чтобы найти не все строки 0:

(arr != 0).all(1)

>>> np.where((arr != 0).all(1))[0].shape
(799,)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...