给定一个庞大的浮动数组和2个索引数组我正在寻找一种优雅的方法来按照以下规则对给定索引之间包含的所有值求和:
所以例如:
stdClass Object
(
[error]=> stdClass Object
(
[message]=>Malformed access token
[type]=>OAuthException
[code]=>190
[fbtrace_id]=>FQftlVOKYL+
)
)
因为我正在处理相当大的数组,所以如果可能的话,我正在寻找一个优雅的以numpy为中心的解决方案。
答案 0 :(得分:2)
那是怎么回事:
# store all cumulative sums (adding 0 at the start for the empty sum)
cs = np.insert(np.cumsum(values), 0, 0)
# then for each indexing get the result in constant time (linear in index0/1 size):
result = np.where(index0 < index1, 0, cs[-1]) + cs[index1+1]-cs[index0]