【发布时间】:2021-02-04 03:02:51
【问题描述】:
我有一个空的 numpy 数组a,一个包含应该插入的值的数组v,以及一个包含索引的数组,这些值应该插入到i。我想使用索引i 将数组v 中的值插入数组a。当i 中的值是唯一的时,只需a[i] = v 即可完成。
如果i 中的值有重复项并且我想计算重复项的总和,该怎么办?
如果i 中的索引重复,则仅使用i 中的最后一次出现:
from numpy import *
a = zeros(5)
i = array([1, 1, 2, 3])
v = array([10, 20, 30, 40])
a[i] = v
print(a) # [ 0. 20. 30. 40. 0.]
i 上的循环有效,但速度很慢:
for j1, j2 in enumerate(i):
a[j2] += v[j1]
print(a) # [ 0. 30. 30. 40. 0.]
迭代搜索、使用和删除 i 中唯一值的算法对于这个简单的任务来说太复杂了。
如何在没有循环的情况下进行求和?
【问题讨论】:
标签: python arrays numpy indexing