Функция compress
Функция compress выбирает элементы из массива
на основе булевой маски. Первым параметром функция
принимает условие (массив булевых значений), вторым -
исходный массив. Возвращается одномерный массив,
содержащий только те элементы, для которых условие
истинно. Также можно указать ось для выбора
вдоль определенного направления.
Синтаксис
np.compress(condition, arr, [axis])
Пример
Выберем из одномерного массива элементы,
которые больше 3:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
cond = arr > 3
res = np.compress(cond, arr)
print(res)
Результат выполнения кода:
[4 5]
Пример
Выберем четные элементы из одномерного массива:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
cond = arr % 2 == 0
res = np.compress(cond, arr)
print(res)
Результат выполнения кода:
[2 4 6 8]
Пример
Выберем строки из двумерного массива,
где сумма элементов больше 10:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
cond = arr.sum(axis=1) > 10
res = np.compress(cond, arr, axis=0)
print(res)
Результат выполнения кода:
[[4 5 6]
[7 8 9]]
Пример
Выберем столбцы из двумерного массива,
где есть элемент равный 5:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
cond = np.any(arr == 5, axis=0)
res = np.compress(cond, arr, axis=1)
print(res)
Результат выполнения кода:
[[2]
[5]]