Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die kumulative Summe einer Zahlenliste effizient berechnen?

Wie kann ich die kumulative Summe einer Zahlenliste effizient berechnen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 22:24:12889Durchsuche

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

Effiziente Berechnung der kumulativen Summe von Zahlen in einer Liste

Bei der Computerprogrammierung ist es oft notwendig, die kumulative Summe von Zahlen in zu berechnen eine Liste. Dies bezieht sich auf den Vorgang, bei dem jede Zahl in der Liste zur vorherigen Summe addiert wird. Wenn die ursprüngliche Liste beispielsweise [4, 6, 12] enthält, wäre die kumulative Summe [4, 10, 22].

Ein einfacher Ansatz besteht darin, die Liste manuell zu durchlaufen und die kumulative Summe zu aktualisieren Verwenden Sie die folgenden Schritte:

t1 = time_interval[0]
t2 = time_interval[1] + t1
t3 = time_interval[2] + t2

Dieser Ansatz kann jedoch ineffizient sein, insbesondere bei großen Listen. Für komplexe numerische Operationen mit Arrays empfiehlt sich die Verwendung von Bibliotheken wie Numpy. Numpy bietet eine spezielle Funktion namens cumsum zur Berechnung der kumulativen Summe:

import numpy as np

a = [4, 6, 12]

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

Numpy bietet erhebliche Leistungsvorteile gegenüber reinen Python-Implementierungen, wie der folgende Benchmark zeigt:

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

Während Numpy ist leistungsstark, es ist möglicherweise nicht notwendig, wenn die kumulative Summe die einzige erforderliche Operation ist. Es ist jedoch eine Überlegung wert, wenn Ihr Projekt umfangreiche numerische Operationen umfasst.

Das obige ist der detaillierte Inhalt vonWie kann ich die kumulative Summe einer Zahlenliste 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