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


Python NumPy choose方法用法及代碼示例


Numpy 的 choose(~) 方法根據輸入數組的子集構造一個新數組。選擇子集的方式非常獨特,通過示例進行解釋比通過文字進行解釋要好得多,所以請查看下麵的示例!

參數

1.a | array-likeint

要提取的整數索引數組。

2. choices |數組序列

超級組。

3. out | Numpy array | optional

用於放置提取的子集的 Numpy 數組。

4. mode | string | optional

如何處理索引越界:

模式

說明

raise

拋出一個錯誤。

wrap

圍繞數組進行另一個循環。

clip

獲取數組的最後一個元素。

默認情況下,mode="raise"

返回值

包含指定子集的 Numpy 數組。

例子

一維數組

要從一維數組中提取第一個和第三個索引:

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



array([5, 7])

二維數組

a = np.array([[4,5,6],[7,8,9],[10,11,12]])
np.choose([1,0,1], a)



array([ 7,  5, 9])

在這裏,我們按順序執行以下操作:

  • 提取 1+1=2nd 數組的第 0 個索引處的值(即 [7,8,9]),即 7。

  • 提取 0+1=1st 數組的第一個索引處的值(即 [4,5,6]),即 5。

  • 提取 1+1=2nd 數組的第二個索引處的值(即 [7,8,9]),即 9。

第一個參數 [1,0,1] 隻意味著我們要從索引 1、0 和 1 處的數組中提取一個值。將選擇的具體值取決於順序:

  • 結果數組中的第一個元素將是位於索引 1 處的數組的第 0 個索引。

  • 結果數組中的第二個元素將是位於索引 0 處的數組的第一個索引。

  • 等等。

這是另一個測試你的理解的例子:

a = np.array([[4,5,6],[7,8,9],[10,11,12]])
np.choose([2,0,1], a)



array([10,  5,  9])

不同模式

增加

mode 的默認參數值為 raise:

a = np.array([7,8,9])
np.choose([4], a, mode="raise")



ValueError: invalid entry in choice array

在這裏,我們收到錯誤,因為我們指定的索引 (4) 超出範圍。

包裹
a = np.array([7,8,9])
np.choose([4], a, mode="wrap")



array([8])

這裏,由於索引 4 不存在,所以我們圍繞數組進行另一個循環; 4-3=然後選擇第一個索引。

夾子
a = np.array([7,8,9])
np.choose([4], a, mode="clip")



array([9])

在這裏,由於索引 4 超出範圍,我們隻獲取數組的最後一個元素 4。

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | choose method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。