Wie man den Rolling-/Moving-Window-Durchschnitt eines NumPy-Arrays berechnet

Der beste Weg, den gleitenden Durchschnitt für ein NumPy-Array zu berechnen, ist die Verwendung von bn.move_mean() aus der bottleneck-Bibliothek. Installieren Sie zuerst bottleneck mit

install_bottleneck.sh
pip install bottleneck

Importieren Sie es nun mit

import_bottleneck.sh
import bottleneck as bn

Nun müssen Sie entscheiden, was mit Fenstern am Anfang des Arrays geschehen soll, in denen nicht genügend Elemente vorhanden sind. Das Standardverhalten ist, das Ergebnis für diese Fenster auf NaN zu setzen:

moving_average_examples.py
x = [1,2,3,4,5,6]
result = bn.move_mean(x, window=3)
# result = [nan, nan,  2.,  3.,  4.,  5.]

aber Sie können auch jedes Fenster akzeptieren, auch wenn es weniger als window Elemente hat.

moving_average_min_count.py
x = [1,2,3,4,5,6]
result = bn.move_mean(x, window=3, min_count=1)
# result = [1. , 1.5, 2. , 3. , 4. , 5. ]

Ein weiteres Beispiel mit window=4:

moving_average_window4.py
x = [1,2,3,4,5,6]
result = bn.move_mean(x, window=4, min_count=1)
# result = array([1. , 1.5, 2. , 2.5, 3.5, 4.5])

Check out similar posts by category: Python