numpy.ufunc.at#
方法
- ufunc.at(a, indices, b=None, /)#
对操作数 ‘a’ 中由 ‘indices’ 指定的元素执行无缓冲的就地操作.对于加法 ufunc,此方法等同于
a[indices] += b
,除了结果会累积到被多次索引的元素上.例如,``a[[0,0]] += 1`` 只会增加第一个元素一次,因为存在缓冲,而add.at(a, [0,0], 1)
会增加第一个元素两次.在 1.8.0 版本加入.
- 参数:
- aarray_like
要执行就地操作的数组.
- indices类似数组或元组
用于索引第一个操作数的类似数组的对象或切片对象.如果第一个操作数有多个维度,索引可以是类似数组的对象或切片对象的元组.
- barray_like
对于需要两个操作数的ufuncs的第二个操作数.操作数必须在索引或切片后可广播到第一个操作数.
示例
将项目 0 和 1 设置为其负值:
>>> import numpy as np >>> 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])