给定索引列表,如何在没有 for 循环的情况下进行多次添加操作?

标题可能有点糊涂,我在这里解释一下:给定一个数组:

arr = np.array([1.0, 2.0])

并给出一个索引列表:

idxes = np.array([0, 0, 1, 0])

以及要添加的号码列表:

e = np.array([0.1, 0.35, 0.5, 0.2])

我想要的是得到这样的结果:

arr[idxes] += e

意思是

[arr[0], arr[0], arr[1], arr[0]] + [0.1, 0.35, 0.5, 0.2]

所以arr[0]加了三倍,arr[0] = arr[0] + 0.1 + 0.35 + 0.2 = 1.65arr[1]了一次arr[1] = arr[1] + 0.5 = 2.5
我怎么能在没有for循环的情况下直接做到这一点?


茅侃侃
浏览 136回答 1
1回答

回首忆惘然

使用numpy.add.at:np.add.at(arr, idxes, e) arr输出:array([1.65, 2.5 ])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python