當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。