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


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

Numpy 的 put(~) 在輸入數組中設置特定值。這是就地完成的,即不會創建新的 Numpy 數組。

參數

1. a | array-like

輸入數組。所有輸入數組都被視為展平數組。

2. ind | array-like

將設置值的索引。請注意,索引適用於輸入數組的扁平版本。請參閱下麵的示例以進行說明。

3. v | array-like

要設置的值。如果 va 短,則將重複 v 以確保形狀匹配。

4. mode | string | optional

指示當您指定的 ind 參數超出範圍時會發生什麽:

說明

"raise"

將會拋出越界錯誤。

"wrap"

圍繞數組循環。

"clip"

數組的最後一個元素是目標。

默認情況下,mode="raise"

返回值

None - 設置就地完成。

例子

基本用法

a = np.array([5,6,7,8])
np.put(a, 1, 9)
a



array([5, 9, 7, 8])

二維數組

考慮以下二維數組:

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



array([[5, 6],
       [7, 8]])
設置單個值
a = np.array([[5,6],[7,8]])
a.put(3, 9)
a



array([[5, 6],
       [7, 9]])
設置多個值
a = np.array([[5,6],[7,8]])
np.put(a, [1,0], 9)
a



array([[9, 9],
       [7, 8]])

這裏,請注意[1,0]並不代表第2行第1列。相反,它表示 a 的扁平化版本的第 1 個和第 0 個索引。因此,我們可以等效地使用[0,1] 來代替。

不同模式

考慮以下二維數組:

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



array([[5, 6],
       [7, 8]])
增加
a = np.array([[5,6],[7,8]])
np.put(a, [5], 9, mode="raise")
a



IndexError: index 5 is out of bounds for axis 0 with size 4

引發此錯誤的原因是展平數組中不存在索引 5。

a = np.array([[5,6],[7,8]])
np.put(a, [5], 9, mode="wrap")
a



array([[5, 9],
       [7, 8]])

在這裏,我們圍繞 a 進行了一個循環,其大小為 4,因此索引 5 轉換為索引 5-4=1。

夾子
a = np.array([[5,6],[7,8]])
np.put(a, [5], 9, mode="clip")
a



array([[5, 6],
       [7, 9]])

在這裏,我們指定的索引超出了界限,因此最後一個索引是目標,在本例中是索引 3。

相關用法


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