【发布时间】:2019-07-31 21:08:40
【问题描述】:
我正在寻找一种在numpy 中使用一个运算符而不是 Python 循环来进行原子或非向量加法或其他操作的方法
假设我有以下numpy 数组:
import numpy as np
arr = np.zeros(4)
ids = np.array([1,2,1])
adds = np.array([1,2,3,4])
arr[ids] +=adds[ids]
'''
for x in ids:
arr[x] +=adds[x]
'''
print(arr )
如何实现推荐出来的代码?此添加的结果不正确,就像我只添加一次 arr[1] 位置。
是否有numpy 函数可以正确执行此操作?
好的,是否也可以这样做:
ids = np.array([0,1,2,1])
adds = np.array([1,2,3,4])
for i, x in enumerate(ids):
arr[x] +=adds[i]
只有一个 numpy 操作?这是主要问题。
【问题讨论】:
-
查看
np.add.at- 它是+=的无缓冲版本。 -
好的,谢谢,我正在寻找