numpy.ufunc.at

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.at.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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

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

版本1.8.0中的新功能。

参数:

a:array_like

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

indices:array_like或tuple

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

b:array_like

需要两个操作数的ufuncs的第二个操作数。操作数必须在索引或切片之后通过第一个操作数进行广播。

例子

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

>>> a = np.array([1, 2, 3, 4])
>>> np.negative.at(a, [0, 1])
>>> print(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)
>>> print(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)
>>> print(a)
array([2, 4, 3, 4])