numpy.ufunc.at #
方法
- ufunc。at ( a ,索引, b =无, / ) #
对“索引”指定的元素的操作数“a”执行无缓冲就地操作。对于加法 ufunc,此方法等效于 ,只不过对多次索引的元素累加结果。例如,由于缓冲,只会将第一个元素增加一次,而 会将第一个元素增加两次。
a[indices] += b
a[[0,0]] += 1
add.at(a, [0,0], 1)
1.8.0 版本中的新增功能。
- 参数:
- 类似数组
要执行就地操作的数组。
- 索引类似于数组或元组
用于索引第一个操作数的类似索引对象或切片对象的数组。如果第一个操作数具有多个维度,则索引可以是数组的元组,如索引对象或切片对象。
- b类数组
需要两个操作数的 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])