【发布时间】:2021-05-24 15:45:02
【问题描述】:
我有一个类似 numpy 的数组
x = np.zeros(4, dtype=np.int)
我有一个像 [1, 2, 3, 2, 1] 这样的索引列表,我想将 1 添加到相应的数组元素中,这样对于索引列表中的每个元素,x 在该位置递增:
x = [0, 2, 2, 1]
我尝试使用:
x[indices] += 1
但是由于某种原因,它只更新索引一次,如果索引出现的频率超过一次,它就没有注册。我当然可以创建一个简单的 for 循环,但我想知道是否有单行解决方案。
【问题讨论】:
-
x被定义为长度为 3,但您稍后将其引用为具有 4 个元素。 -
x 是任意的,仅作为示例,简单错误:)
-
这能回答你的问题吗? Increment Numpy array with repeated indices
-
该链接包含一个使用
add.at的答案,该答案用于解决+=中的缓冲问题。