Heim >Backend-Entwicklung >Python-Tutorial >Wie führt man Rollfensterberechnungen für 1D-Arrays in NumPy effizient durch?
Rollende Fensterberechnungen für 1D-Arrays in NumPy implementieren
Rollende Fensterberechnungen beinhalten die iterative Anwendung einer Funktion auf Teilmengen eines bestimmten Arrays. In diesem Zusammenhang konzentriert sich die Frage darauf, eine effiziente Möglichkeit zu finden, rollierende Fensterberechnungen für eindimensionale (1D) Arrays in der Python-Bibliothek NumPy durchzuführen.
Um dies zu erreichen, können Sie die Funktion „rolling_window“ aus einem Blog nutzen Beitrag, auf den im Problem verwiesen wird. Diese Funktion ist jedoch für mehrdimensionale Arrays konzipiert und erfordert daher einige Anpassungen, um mit 1D-Arrays zu arbeiten.
Die Schlüsselidee besteht darin, die gewünschte Funktion auf das Ergebnis der Funktion „rolling_window“ anzuwenden. Wenn Sie beispielsweise die rollierende Standardabweichung berechnen möchten, können Sie den folgenden Code verwenden:
<code class="python">import numpy as np def rolling_window(a, window): shape = a.shape[:-1] + (a.shape[-1] - window + 1, window) strides = a.strides + (a.strides[-1],) return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides) observations = [1, 2, 3, 4, 5, 6, 7] n = 3 # window length rolling_std = np.std(rolling_window(observations, n), 1)</code>
In diesem Beispiel erstellt die Funktion „rolling_window“ ein Schiebefenster der Größe n über dem Beobachtungsarray. Die np.std-Funktion berechnet dann die Standardabweichung für jedes Fenster und speichert die Ergebnisse im Rolling_std-Array.
Dieser Ansatz nutzt die effizienten Array-Operationen von NumPy, um rollierende Fensterberechnungen nahtlos durchzuführen, ohne dass explizite Python-Schleifen erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie führt man Rollfensterberechnungen für 1D-Arrays in NumPy effizient durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!