Maison >développement back-end >Tutoriel Python >Comment puis-je calculer efficacement la somme cumulée d'une liste de nombres en Python ?

Comment puis-je calculer efficacement la somme cumulée d'une liste de nombres en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-10 11:39:14586parcourir

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

Trouver la somme cumulée des nombres dans une liste

Problème :
Étant donné une liste de nombres, nous voulons trouver le cumul somme, ce qui signifie additionner les nombres un par un depuis le début de la liste. Par exemple, si nous avons une liste [4, 6, 12], nous voulons obtenir [4, 4 6, 4 6 12] résultant en [4, 10, 22].

Réponse :

Pour les opérations numériques sur les tableaux, il est recommandé de considérer NumPy, une puissante bibliothèque Python. Il dispose d'une fonction de somme cumulative pratique, cumsum :

import numpy as np

a = [4,6,12]

np.cumsum(a)
#array([4, 10, 22])

NumPy surpasse souvent le Python pur pour de telles tâches. Voici une comparaison avec une autre fonction, 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

Bien que NumPy offre des avantages en termes de vitesse, il est important de se rappeler qu'une dépendance peut ne pas être nécessaire si NumPy n'est requis que pour une seule tâche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn