numpy.flatnonzero

numpy.flatnonzero(a)

Функция flatnonzero() возвращает индексы ненулевых элементов в сжатом до одной оси представлении указанного массива.

Данная функция эквивалентна команде a.flat[np.flatnonzero(a)] или np.nonzero(np.ravel(a))[0].

Параметры:
a - массив NumPy или подобный массиву объект.
Исходный массив.
Возвращает:
ndarray - массив NumPy
массив индексов ненулевых элементов в сжатом до одной оси представлении указанного массива.
Смотрите так же:
argwhere, nonzero, flat, ravel


Примеры

>>> import numpy as np
>>> 
>>> a = np.random.randint(1, 11, size = (2, 6))
>>> a
array([[ 4, 10,  1,  3,  4,  3],
       [ 8, 10,  3,  7,  7,  3]])
>>> 
>>> a[a < 5] = 0
>>> a
array([[ 0, 10,  0,  0,  0,  0],
       [ 8, 10,  0,  7,  7,  0]])
>>> 
>>> ind = np.flatnonzero(a)
>>> ind
array([ 1,  6,  7,  9, 10], dtype=int32)
>>>
>>>  
>>> a.flat[ind]
array([10,  8, 10,  7,  7])
>>> 
>>> np.nonzero(np.ravel(a))[0]
array([ 1,  6,  7,  9, 10], dtype=int32)