Home > Backend Development > Python Tutorial > How Can I Efficiently Calculate the Cumulative Sum of a List of Numbers?

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

Linda Hamilton
Release: 2024-12-10 22:24:12
Original
882 people have browsed it

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

Efficiently Calculating the Cumulative Sum of Numbers in a List

In computer programming, it is often necessary to calculate the cumulative sum of numbers in a list. This refers to the process of adding each number in the list to the previous sum. For example, if the original list contains [4, 6, 12], the cumulative sum would be [4, 10, 22].

One straightforward approach is to manually loop through the list and update the cumulative sum using the following steps:

t1 = time_interval[0]
t2 = time_interval[1] + t1
t3 = time_interval[2] + t2
Copy after login

However, this approach can be inefficient, especially for large lists. For complex numerical operations involving arrays, it is recommended to utilize libraries such as Numpy. Numpy provides a specialized function called cumsum to calculate the cumulative sum:

import numpy as np

a = [4, 6, 12]

np.cumsum(a)  # Output: array([4, 10, 22])
Copy after login

Numpy offers significant performance advantages over pure Python implementations, as evidenced by the following benchmark:

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
Copy after login

While Numpy is powerful, it may not be necessary if the cumulative sum is the only operation required. However, it is worth considering if your project involves extensive numerical operations.

The above is the detailed content of How Can I Efficiently Calculate the Cumulative Sum of a List of Numbers?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template