2016-08-26 35 views

回答

2
[sum(a[:i]) for i in range(1,len(a)+1)] 

可能是最简单的方法......我想......

numpy.cumsum(a) 

也将工作我

1
for i in range(1, len(arr)): 
    arr[i] += arr[i - 1] 

比Joran比斯利环

+0

^_^...不是真的,如果它的大小足以影响快速的numpy版本是他应该真正使用的:P + 1都是一样的......只是可能对读者有点不太清楚,它是累积和 –

+0

是的,我相信numpy.cumsum实施尽可能快我说的是第一个循环 – kill129

2

更有效的利用认为itertools.accumulate

>>> import itertools 
>>> list(itertools.accumulate([1,1,3,3,4], lambda total,el: total+el)) 
[1, 2, 5, 8, 12] 

免责声明:添加在Python 3.2

相关问题