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!