Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich kumulative Summen in Python effizient berechnen?

Wie kann ich kumulative Summen in Python effizient berechnen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-05 21:29:09950Durchsuche

How Can I Efficiently Calculate Cumulative Sums in Python?

Effiziente Berechnung kumulativer Summen in Listen

Das Akkumulieren der Summe aufeinanderfolgender Elemente in einer Liste kann eine häufige Aufgabe in der Datenanalyse oder numerischen Analyse sein Berechnungen. Wenn beispielsweise eine Liste von Zeitintervallen time_interval = [4, 6, 12] gegeben ist, möchten wir möglicherweise die kumulative Summe dieser Intervalle ermitteln, was zu t = [4, 10, 22] führt.

Using Ein manueller Ansatz, wie in der Frage gezeigt, ist zwar effektiv, kann jedoch bei großen Listen umständlich sein. Eine effizientere Lösung ist jedoch mit der Numpy-Bibliothek verfügbar:

import numpy as np

a = [4, 6, 12]

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

Die Cumsum-Funktion von Numpy bietet einen erheblichen Leistungsvorteil gegenüber reinen Python-Implementierungen, insbesondere bei großen Listen. Benchmarks haben gezeigt, dass die Cumsum-Funktion von Numpy die manuelle Akkumulation um eine Größenordnung übertrifft:

timeit list(accumu(range(1000)))
10000 loops, best of 3: 161 us per loop

timeit list(accumu(xrange(1000)))
10000 loops, best of 3: 147 us per loop

timeit np.cumsum(np.arange(1000))
100000 loops, best of 3: 10.1 us per loop

Wenn Sie daher regelmäßig mit numerischen Arrays arbeiten, wird die Verwendung der Cumsum-Funktion von Numpy aufgrund ihrer Effizienz und Benutzerfreundlichkeit dringend empfohlen.

Das obige ist der detaillierte Inhalt vonWie kann ich kumulative Summen in Python effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn