Heim >Backend-Entwicklung >Python-Tutorial >Warum verfügt NumPy nicht über eine integrierte Funktion für den gleitenden Durchschnitt?

Warum verfügt NumPy nicht über eine integrierte Funktion für den gleitenden Durchschnitt?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 14:29:13856Durchsuche

Why Doesn't NumPy Have a Built-in Moving Average Function?

Vereinfachte Berechnung des gleitenden Durchschnitts mit Python und NumPy

Die Berechnung des gleitenden Durchschnitts oder des gleitenden Durchschnitts einer Datenreihe ist wichtig, um Rauschen zu glätten und Trends erkennen. Während NumPy/SciPy über keine dedizierte Funktion für den gleitenden Durchschnitt verfügt, ist die manuelle Implementierung überraschend einfach.

Einfachste Implementierung mit NumPy

Verwendung der Cumsum-Funktion von NumPy, einer unkomplizierten, nicht gewichteten Funktion Der gleitende Durchschnitt kann effizient implementiert werden:

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

Diese Implementierung bietet eine schnelle und genaue Möglichkeit zur Berechnung der gleitende Durchschnitt für jede gewünschte Fenstergröße.

Einbeziehung in Batterien versus Implementierung

Das Fehlen einer integrierten Funktion für den gleitenden Durchschnitt in NumPy/SciPy mag seltsam erscheinen, angesichts seiner Allgegenwärtigkeit. Dafür gibt es jedoch einige mögliche Gründe:

  • Einfachheit der Implementierung: Wie oben gezeigt, kann der gleitende Durchschnitt einfach mit Standard-NumPy-Funktionen implementiert werden.
  • Recheneffizienz: Die Die Cumsum-Methode ist oft schneller als komplexere FFT-basierte Ansätze.
  • Potenzielle Aufblähung: Das Einbeziehen spezialisierter Funktionen für jede erdenkliche Datenanalyseaufgabe könnte möglich sein zu Aufblähungen in den NumPy/SciPy-Bibliotheken führen.

Das obige ist der detaillierte Inhalt vonWarum verfügt NumPy nicht über eine integrierte Funktion für den gleitenden Durchschnitt?. 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