Gleitende Durchschnitte mit Python implementieren
Obwohl es in NumPy oder SciPy keine spezielle Funktion zur Berechnung gleitender Durchschnitte gibt, gibt es eine einfache und effiziente Möglichkeit, es mithilfe der Funktion np.cumsum zu implementieren. Dieser Ansatz ist besonders effektiv für nicht gewichtete gleitende Durchschnitte.
def moving_average(a, n=3): ret = np.cumsum(a, dtype=float) ret[n:] = ret[n:] - ret[:-n] return ret[n - 1:] / n
Dieser Code benötigt ein Array a und eine Fenstergröße n, um den gleitenden Durchschnitt zu berechnen. Es verwendet np.cumsum, um die kumulative Summe des Arrays zu berechnen und subtrahiert dann die Summe der vorherigen n Elemente, um das sich bewegende Fenster anzupassen. Das resultierende Array wird dann durch n dividiert, um den Durchschnitt zu erhalten.
Zum Beispiel berechnet der folgende Code den gleitenden Durchschnitt eines Arrays:
a = np.arange(20) moving_average(a) # array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., # 12., 13., 14., 15., 16., 17., 18.])
Es ist erwähnenswert, dass gleitende Durchschnitte implementiert werden ist in NumPy relativ einfach und die Aufnahme einer solchen Funktionalität in die Bibliothek ist möglicherweise nicht notwendig, da dies zu einer Aufblähung führen und den Fokus der Bibliothek auf ihre Kernfunktionalität verringern könnte.
Das obige ist der detaillierte Inhalt vonWie implementiert man gleitende Durchschnitte in Python ohne eine spezielle Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!