Функция compress(), определенная в NumPy, которую можно импортировать как import NumPy или np, и мы можем создавать многомерные массивы и получать другую математическую статистику с помощью NumPy, библиотеки Python.
Что такое функция Numpy compress()?
Функция Numpy.compress() сжимает и возвращает выбранные срезы массива по заданной оси. При работе по заданной оси срез вдоль этой оси возвращается в выходных данных для каждого индекса, где условие оценивается как True. Приведенное выше объяснение работает в случае двумерного массива, а при работе с одномерным массивом сжатие эквивалентно функции извлечения.
Синтаксис
|
1 |
numpy.compress(condition, input_array, axis = None, out = None) |
Параметры
- condition: отображает условие, на основе которого пользователь извлекает элементы. При применении условия к input_array он возвращает массив, заполненный True или False, и после того, как эти элементы input_Array извлекаются из индексов, имеющих значение True.
- Input_array: отображает входной массив, в котором пользователь применяет условия к его элементам.
- axis: указывает, какой срез пользователь хочет выбрать. Это совершенно необязательно, и по умолчанию он работает с плоским массивом [1-D].
- out: отображает массив Output_array с элементами input_array, который удовлетворяет условию. Это совершенно необязательный параметр.
Возвращаемое значение
Функция compress() возвращает копию элементов массива, удовлетворяющих заданным условиям по заданной оси.
Примеры

Напишем программы, показывающие работу функции сжатия.
Пример 1
|
1 2 3 4 5 6 7 |
import numpy as np array = np.arange(10).reshape(5, 2) print("Original array : \n", array) a = np.compress((array > 0)[1], array, axis=0) print("\nSliced array : \n", a) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 |
Original array : [[0 1] [2 3] [4 5] [6 7] [8 9]] Sliced array : [[0 1] [2 3]] |
Объяснение.
В приведенном выше коде по условию возвращались элементы в строке больше 0 срезов по оси 0.
Пример 2
См. следующий код.
|
1 2 3 4 5 6 7 |
import numpy as np array = np.arange(10).reshape(5, 2) print("Original array : \n", array) a = np.compress([True, False], array, axis=1) print("\nSliced array : \n", a) |
Выход:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Original array : [[0 1] [2 3] [4 5] [6 7] [8 9]] Sliced array : [[0] [2] [4] [6] [8]] |
Объяснение.
В приведенном выше коде логический список был передан как условие, поэтому по оси 1 все элементы были извлечены из 1-го столбца.
