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
.
Примеры
>>> 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])