Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führt man Rollfensterberechnungen für 1D-Arrays in NumPy effizient durch?

Wie führt man Rollfensterberechnungen für 1D-Arrays in NumPy effizient durch?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 12:24:30729Durchsuche

How to Efficiently Perform Rolling Window Calculations for 1D Arrays in NumPy?

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!

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