首页 >后端开发 >Python教程 >如何在Python中高效计算数字列表的累积和?

如何在Python中高效计算数字列表的累积和?

Susan Sarandon
Susan Sarandon原创
2024-12-10 11:39:14570浏览

How Can I Efficiently Calculate the Cumulative Sum of a List of Numbers in Python?

查找列表中数字的累积和

问题:
给定一个数字列表,我们想要找到累积值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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn