这是一个相当基本的问题,所以我怀疑它之前一定是被问过的。如果是这种情况我很抱歉,我找不到它。
无论如何,正如我们所知,我们可以使用数组ind
来索引另一个数组x
:
import numpy as np
x = np.array([0,0,0,0,0])
ind = np.array([0,2,4])
x[ind] += np.array([1,2,3])
print(x)
哪个是预期的输出
[1 0 2 0 3]
将ind
更改为具有重复索引,例如[0,2,2]
导致仅为最后一个重复索引
[1 0 3 0 0]
而不是
[1 0 5 0 0]
虽然我发现这种行为非常令人不满意并且反直觉但我理解这是因为使用了here所描述的基础临时数组。
无论如何,问题是,有没有很好的方法来实现这一目标?我当然可以使用一个循环,但我更愿意学习一种优雅而有效的方法。 (注意:这不是我的真实代码,只是我偶然发现的问题的最小例子。)
谢谢。