Numpy put() 函数
Numpy put() 函数用于将数组中指定索引处的元素替换为新值。此函数直接就地修改输入数组,并提供一种便捷的方法,将值赋给扁平数组或多维数组中的任意位置。
put() 函数操作的是目标数组的扁平版本,这意味着指定的索引会像数组是一维数组一样应用。这大致相当于以下操作:
a.flat[indices] = values
语法
以下是 Numpy put() 函数的语法 -
numpy.put(a, indices, values, mode='raise')
参数
以下是 Numpy put() 函数的参数 -
- a:要修改的输入数组。
- indices:一个类似数组的整数序列,用于指定值的展平位置。
- values:一个类似数组的值序列,用于将值放入数组的指定位置。如果 values 的长度小于 indices,则重复。
- mode(可选):一个字符串,用于控制如何处理超出范围的索引。选项包括:-
- 'raise':引发错误(默认)。
- 'wrap':环绕有效索引。
- 'clip':限制在有效索引范围内。
返回类型
此函数不返回新数组。相反,它会就地修改输入数组。
示例
以下是使用 Numpy put() 函数替换一维数组中元素的基本示例 -
import numpy as np array = np.array([10, 20, 30, 40, 50]) np.put(array, [1, 3], [99, 77]) print("修改后的数组:", array)
输出
以下是上述代码的输出 -
修改后的数组:[10 99 30 77 50]
示例:使用重复值
如果 values 数组中的元素数量少于 indices 数组中的元素数量,则 put() 函数会循环重复这些值,直到它们与 indices 数组的长度匹配。
在下面的示例中,values 数组中提供了一个元素,而 indices 数组中指定了三个元素。 put() 函数将所有指定的索引位置替换为给定的单个值,并根据需要重复该值 -
import numpy as np array = np.array([10, 20, 30, 40, 50]) np.put(array, [0, 2, 4], [99]) print("修改后的数组:", array)
输出
以下是上述代码的输出 -
修改后的数组:[99 20 99 40 99]
示例:使用 Mode 参数
在put() 函数设置为 clip 时,可确保如果索引超出范围,则将其截断到最近的有效索引。在以下示例中,索引 5 和 7 超出了数组的范围。由于模式设置为 clip,这些索引会被截断到最后一个有效索引,从而得到最后一个元素 -
import numpy as np array = np.array([10, 20, 30, 40, 50]) np.put(array, [1, 5, 7], [99, 77, 55], mode='clip') print("修改后的数组:", array)
输出
以下是上述代码的输出 -
修改后的数组:[10 99 30 40 77]