问题:
给定一个数字列表,我们想要找到累积值sum,意思是从列表的开头开始对数字进行一一求和。例如,如果我们有一个列表 [4, 6, 12],我们想要得到 [4, 4 6, 4 6 12],从而得到 [4, 10, 22]。
答案:
对于数组的数值运算,建议考虑 NumPy,一个强大的 Python 库。它具有方便的累积和函数 cumsum:
import numpy as np a = [4,6,12] np.cumsum(a) #array([4, 10, 22])
对于此类任务,NumPy 通常优于纯 Python。下面是与另一个函数 Accumu 的比较:
In [136]: timeit list(accumu(range(1000))) 10000 loops, best of 3: 161 us per loop In [137]: timeit list(accumu(xrange(1000))) 10000 loops, best of 3: 147 us per loop In [138]: timeit np.cumsum(np.arange(1000)) 100000 loops, best of 3: 10.1 us per loop
虽然 NumPy 提供速度优势,但重要的是要记住,如果 NumPy 仅需要单个任务,则可能不需要依赖项。
以上是如何在Python中高效计算数字列表的累积和?的详细内容。更多信息请关注PHP中文网其他相关文章!