高效计算列表中的累积和
累积列表中连续元素的总和可以是数据分析或数值计算中的常见任务计算。例如,给定一个时间间隔列表 time_interval = [4, 6, 12],我们可能想要找到这些间隔的累积和,从而得到 t = [4, 10, 22]。
使用问题中所展示的手动方法虽然有效,但对于大型列表来说可能很麻烦。然而,使用 numpy 库可以提供更有效的解决方案:
import numpy as np a = [4, 6, 12] np.cumsum(a) #array([ 4, 10, 22])
numpy 的 cumsum 函数比纯 Python 实现提供了显着的性能优势,尤其是对于大型列表。基准测试表明 numpy 的 cumsum 性能优于手动累加一个数量级:
timeit list(accumu(range(1000))) 10000 loops, best of 3: 161 us per loop timeit list(accumu(xrange(1000))) 10000 loops, best of 3: 147 us per loop timeit np.cumsum(np.arange(1000)) 100000 loops, best of 3: 10.1 us per loop
因此,如果您经常使用数值数组,强烈建议使用 numpy 的 cumsum 函数,因为它的效率和易用性。
以上是如何在Python中高效计算累计和?的详细内容。更多信息请关注PHP中文网其他相关文章!