当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy compress方法用法及代码示例


NumPy 的 compress(~) 方法根据给定条件提取输入值的子集。

注意

当输入数组为一维时,NumPy 的 extract(~) 方法相当于compress(~)

参数

1.condition | array-likeboolean

指示是否设置该值的布尔值数组。如果条件的大小小于输入数组 a ,则输出将被截断以匹配条件的大小。

2. a | array-like

输入数组。

3. axis | int | optional

提取值所沿的轴。对于二维数组,允许的值如下:

意义

0

提取是按行进行的。

1

提取按列进行。

None

输入数组被视为展平数组。

默认情况下,axis=None

4. out | Numpy array | optional

用于放置提取的子集的 NumPy 数组。

返回值

一个新的 NumPy 数组保存输入值的子集。

例子

压缩一维数组

np.compress([True, False, True, False], [4,5,6,7])



array([4, 6])

请注意,这相当于以下内容:

a = np.array([4,5,6,7])
mask = [True, False, True, False]
a[mask]



array([4, 6])

截断

当条件数组的大小小于输入数组的大小时,就会发生截断:

a = np.array([4,5,6,7])
np.compress([True, False], a)



array([4])

这里,仅考虑数组中的前两个值 - 但仅返回第一个值,因为第二个值被标记为 False。

压缩二维数组

考虑以下二维数组:

a = np.array([[4,5],[6,7]])
a



array([[4, 5],
       [6, 7]])
从展平数组中提取
np.compress([True, False, False, True], a)



array([4, 7])
逐行提取
np.compress([True, False], a, axis=0)



array([[4, 5]])
按列提取
np.compress([True, False], a, axis=1)



array([[4],
       [6]])

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | compress method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。