numpy.ufunc.at¶
-
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])