Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man mit NumPy effizient einen gleitenden Durchschnitt in Python berechnen?

Wie kann man mit NumPy effizient einen gleitenden Durchschnitt in Python berechnen?

Susan Sarandon
Susan SarandonOriginal
2024-11-16 08:16:03206Durchsuche

How to Efficiently Calculate a Rolling Average in Python with NumPy?

Berechnung des gleitenden / gleitenden Durchschnitts in Python mit NumPy / SciPy

Trotz der umfangreichen Funktionalität von NumPy und SciPy kann die Berechnung eines gleitenden Durchschnitts problemlos erfolgen eine überraschend komplexe Aufgabe. Dieser Artikel befasst sich mit dem Problem, indem er eine einfach zu implementierende Lösung mit NumPys np.cumsum bereitstellt.

Einfachste Möglichkeit, den gleitenden Durchschnitt mit NumPy zu implementieren

Für eine einfache Lösung -gewichteter gleitender Durchschnitt, np.cumsum bietet eine effiziente Lösung:

def moving_average(a, n=3):
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / n

Leistung und Einfachheit

Diese Methode bietet hohe Leistung, da sie das optimierte np.cumsum von NumPy nutzt Funktion, die in bestimmten Fällen FFT-basierte Methoden übertrifft. Darüber hinaus vermeidet es potenzielle Fehler, die mit komplexen Algorithmen verbunden sind, was es äußerst zuverlässig macht.

Rational für den Ausschluss der Funktionalität des gleitenden Durchschnitts in NumPy

Trotz seines offensichtlichen Nutzens kann dies der Fall sein Gültige Gründe für den Ausschluss der Funktionalität des gleitenden Durchschnitts aus dem NumPy-Kern:

  • Einfachheit geht vor Funktionalität: NumPy ist bestrebt, einen einfachen und kompakten Kern beizubehalten und unnötige Aufblähung durch spezialisierte Funktionen zu vermeiden.
  • Verfügbarkeit von vom Benutzer implementierten Lösungen: Wie oben gezeigt, ist die Implementierung eines gleitenden Durchschnitts mit NumPy unkompliziert, sodass keine doppelten Funktionen in der Bibliothek erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann man mit NumPy effizient einen gleitenden Durchschnitt in Python 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