具有环绕条件的索引数组之间的Numpy值

时间:2016-08-15 07:46:04

标签: python arrays numpy

给定一个庞大的浮动数组和2个索引数组我正在寻找一种优雅的方法来按照以下规则对给定索引之间包含的所有值求和:

  • 当index1> index0,求和以直接的方式发生
  • 当index1< index0,summation" wraparounds"价值观。

所以例如:

stdClass Object
(
   [error]=> stdClass Object
   (
       [message]=>Malformed access token
       [type]=>OAuthException
       [code]=>190
       [fbtrace_id]=>FQftlVOKYL+
   )
)

因为我正在处理相当大的数组,所以如果可能的话,我正在寻找一个优雅的以numpy为中心的解决方案。

1 个答案:

答案 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]