numpy.ufunc.at

方法

ufunc.at(a, indices, b=None, /)

为“indexs”指定的元素对操作数“a”执行未缓冲的就地操作。对于添加ufunc,此方法等效于 a[indices] += b ,但对索引多次的元素累积结果除外。例如, a[[0,0]] += 1 由于缓冲,将只增加第一个元素一次,而 add.at(a, [0,0], 1) 将第一个元素递增两次。

1.8.0 新版功能.

参数
aarray_like

要对其执行就地操作的数组。

indices数组或元组

类似数组的索引对象或切片对象,用于索引到第一个操作数。如果第一个操作数具有多个维度,则索引可以是类似于索引对象或切片对象的数组元组。

barray_like

需要两个操作数的UFUNC的第二个操作数。索引或切片后,操作数必须可在第一个操作数上广播。

实例

将项目0和1设置为负值:

>>> a = np.array([1, 2, 3, 4])
>>> np.negative.at(a, [0, 1])
>>> a
array([-1, -2,  3,  4])

增加项目0和1,增加项目2两次:

>>> a = np.array([1, 2, 3, 4])
>>> np.add.at(a, [0, 1, 2, 2], 1)
>>> a
array([2, 3, 5, 4])

将第一个数组中的项0和1添加到第二个数组,并将结果存储在第一个数组中:

>>> a = np.array([1, 2, 3, 4])
>>> b = np.array([1, 2])
>>> np.add.at(a, [0, 1], b)
>>> a
array([2, 4, 3, 4])