NumPy | compress method
Start your free 7-days trial now!
NumPy's compress(~) method extracts a subset of the input values based on the given condition.
NumPy's extract(~) method is equivalent to the compress(~) when the input array is 1D.
Parameters
1. condition | array-like of boolean
An array of booleans that indicate whether or not to set the value. If the size of condition is smaller than the input array a, then output will be truncated so as to match the size of the condition.
2. a | array-like
The input array.
3. axis | int | optional
The axis along which to extract the values. For 2D arrays, the allowed values are as follows:
Axis | Meaning |
|---|---|
0 | Extraction is done row-wise. |
1 | Extraction is done column-wise. |
None | The input array is treated as a flattened array. |
By default, axis=None.
4. out | Numpy array | optional
A NumPy array to place the extracted subset.
Return value
A new NumPy array holding a subset of input values.
Examples
Compressing a 1D array
np.compress([True, False, True, False], [4,5,6,7])
array([4, 6])
Notice that this is equivalent to the following:
array([4, 6])
Truncation
Truncation happens when the size of the condition array is smaller than that of the input array:
np.compress([True, False], a)
array([4])
Here, only the first two values in the array are considered - yet only first value is returned since the second value is flagged as False.
Compressing a 2D array
Consider the following 2D array:
a
array([[4, 5], [6, 7]])
Extracting from a flattened array
np.compress([True, False, False, True], a)
array([4, 7])
Extracting row-wise
np.compress([True, False], a, axis=0)
array([[4, 5]])
Extracting column-wise
np.compress([True, False], a, axis=1)
array([[4], [6]])