method
ufunc.at(a, indices, b=None, /)
Performs unbuffered in place operation on operand ‘a’ for elements specified by ‘indices’. For addition ufunc, this method is equivalent to a[indices]+=b, except that results are accumulated for elements that are indexed more than once. For example, a[[0,0]]+=1 will only increment the first element once because of buffering, whereas add.at(a,[0,0],1) will increment the first element twice.
Parameters:aarray_likeThe array to perform in place operation on.
indicesarray_like or tupleArray like index object or slice object for indexing into first operand. If first operand has multiple dimensions, indices can be a tuple of array like index objects or slice objects.
barray_likeSecond operand for ufuncs requiring two operands. Operand must be broadcastable over first operand after indexing or slicing.
Examples
Set items 0 and 1 to their negative values:
>>> importnumpyasnp>>> a=np.array([1,2,3,4])>>> np.negative.at(a,[0,1])>>> aarray([-1, -2, 3, 4])Increment items 0 and 1, and increment item 2 twice:
>>> a=np.array([1,2,3,4])>>> np.add.at(a,[0,1,2,2],1)>>> aarray([2, 3, 5, 4])Add items 0 and 1 in first array to second array, and store results in first array:
>>> a=np.array([1,2,3,4])>>> b=np.array([1,2])>>> np.add.at(a,[0,1],b)>>> aarray([2, 4, 3, 4])