另一个数据求和问题。我有一个(大)数据数组和索引长度相同的数组。
data = [1.0, 10.0, 100.0]
indices = [0, 2, 0]
目标是将data
的条目汇总到一个新数组中,使索引k
的条目对out[k]
有用。对于上面的例子,结果将是
out = [101.0, 0.0, 10.0]
out
的长度可以预先指定,或者只是max(indices)
。
(问题类似于NumPy: Sort and sum data into array,但此处提供目标索引除外。)
在循环中执行,
import numpy as np
out = np.zeros(2)
for val, k in zip(data, indices):
out[k] += val
但如果data
很大,则速度很慢。
有关如何加快速度的任何提示? (数组理解?)