Dan*_*rty 1 python numpy sum running-total cumulative-sum
鉴于以下列表:
a=[1,2,3]
Run Code Online (Sandbox Code Playgroud)
我想生成一个新列表,其中每个数字是它和它之前的值的总和,如下所示:
result = [1,3,6]
Run Code Online (Sandbox Code Playgroud)
逻辑:
1没有先前的值,所以它保持不变.
3是从第一个值(1)加到列表中的第二个数字的值(2)
6是来自前两个元素的1和2的总和,加上3的第三个值.
提前致谢!
如果你想要一个 numpy 解决方案
from numpy import cumsum
result = list(cumsum(a))
Run Code Online (Sandbox Code Playgroud)
Python就是itertools.accumulate为了这个目的:
>>> from itertools import accumulate
>>> a=[1,2,3]
>>> list(accumulate(a))
[1, 3, 6]
Run Code Online (Sandbox Code Playgroud)