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
Libérer: 2024-12-10 11:39:14
original
586 Les gens l'ont consulté

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])
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal