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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。