numpy.extract

numpy.extract(condition, arr)

Функция extract() возвращает элементы массива, которые удовлетворяют указанному условию.

Данная функция эквивалентна команде np.compress(np.ravel(condition), np.ravel(arr)) или если условие является логическим выражением, то это эквивалентно простой команде arr[condition].

Так же данная функция является обратной к np.place().

Параметры:
condition - массив NumPy или подобный массиву объект.
Булев массив, который является маской для исходного массива и определяет какие элементы должны быть заменены: True (или ненулевое значение) - элемент извлекается, False (или нулевое значение) - нет.
arr - массив NumPy или подобный массиву объект.
Исходный массив.
Возвращает:
ndarray - массив NumPy
одномерный массив с элементами из a, которые соответствуют истинным значениям в condition.
Смотрите так же:
take, put, compress, place, copyto


Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(16).reshape(4, 4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> 
>>> cond_1 = a%2 == 1
>>> 
>>> np.extract(cond_1, a)     #  равносильно a[cond_1]
array([ 1,  3,  5,  7,  9, 11, 13, 15])

В качестве condition могут выступать и обычные массивы:

>>> cond_2 = a%2
>>> cond_2
array([[0, 1, 0, 1],
       [0, 1, 0, 1],
       [0, 1, 0, 1],
       [0, 1, 0, 1]], dtype=int32)
>>> 
>>> np.extract(cond_2, a)
array([ 1,  3,  5,  7,  9, 11, 13, 15])