Numpy für Rollfenster-Standardabweichungen auf 1D-Arrays verwenden
In Numpy tritt häufig eine Operation auf, bei der eine Rollfensterfunktion berechnet werden muss über ein 1D-Array. Ein einfacher Ansatz wäre die Verwendung einer Schleife, wie im angegebenen Python-Codeausschnitt gezeigt. Eine effizientere Methode ist jedoch über die Funktion „Numpy“ verfügbar.
Der Schlüssel zur Durchführung einer Rolling-Window-Operation in Numpy liegt in der Verwendung der in einem Blogbeitrag vorgestellten Funktion „rolling_window“. Diese Funktion formt das Eingabearray in eine Reihe überlappender Fenster um und erstellt so effektiv ein 2D-Array. Das Anwenden einer Funktion auf dieses 2D-Array ermöglicht fensterbasierte Berechnungen.
Um rollierende Standardabweichungen zu berechnen, wenden Sie einfach die Funktion numpy.std auf die Ausgabe der Funktion Rolling_window an. Der folgende modifizierte Codeausschnitt demonstriert diesen Ansatz:
import numpy as np # Define the rolling window function 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) # Input array observations = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Calculate rolling standard deviations stdev = np.std(rolling_window(observations, 3), 1) # Print the results print(stdev)
Dieser Codeausschnitt berechnet effizient die rollierenden Standardabweichungen für das gegebene 1D-Array mithilfe reiner Numpy-Operationen, wodurch Schleifen überflüssig werden.
Das obige ist der detaillierte Inhalt vonWie berechnet man Rollfenster-Standardabweichungen für 1D-Arrays mit Numpy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!