Wie kann man rollierende Standardabweichungen in NumPy effizient berechnen?

Linda Hamilton
Freigeben: 2024-10-27 16:17:02
Original
320 Leute haben es durchsucht

How to Efficiently Calculate Rolling Standard Deviations in NumPy?

Rollendes Fenster für 1D-Arrays in NumPy implementieren

Die Notwendigkeit, rollierende Fensteroperationen für 1D-Arrays effizient durchzuführen, entsteht häufig bei der Datenanalyse und -manipulation . NumPy, eine leistungsstarke Bibliothek für numerische Operationen, bietet eine vielseitige Lösung für diese Aufgabe.

Betrachten Sie beispielsweise die Aufgabe, die rollierenden Standardabweichungen für eine 1D-Werteliste zu berechnen. Eine einfache Python-Implementierung mit Schleifen, wie in der Frage angegeben, kann für große Datensätze rechenintensiv sein.

NumPy-basierte Lösung

Um diesen Prozess zu optimieren, bietet NumPy an ein prägnanter und effizienter Ansatz:

<code class="python">import numpy as np

def rolling_std(array, window):
    return np.std(np.lib.stride_tricks.as_strided(array, shape=array.shape[0] - window + 1, strides=(array.strides[0], array.strides[0])), 1)</code>
Nach dem Login kopieren

Die Funktion „rolling_std“ benötigt zwei Argumente: das 1D-Array und die gewünschte Fenstergröße.

Die Funktion „as_strided“ von NumPy erstellt eine Ansicht des Arrays, als ob es wäre wurden in überlappende Fenster unterteilt, mit einem Schritt, der eine effiziente Berechnung ermöglicht.

Die Funktion np.std berechnet dann die Standardabweichung entlang der zweiten Dimension und führt so effektiv den Rollvorgang aus.

Verwendung

Um die rollierenden Standardabweichungen für die Eingabearray-Beobachtungen zu berechnen, rufen Sie einfach auf:

<code class="python">stdev = rolling_std(observations, window_size)</code>
Nach dem Login kopieren

Diese Lösung ist hochleistungsfähig, macht explizite Schleifen überflüssig und nutzt die volle Leistung NumPys Fähigkeiten zur effizienten Array-Manipulation.

Das obige ist der detaillierte Inhalt vonWie kann man rollierende Standardabweichungen in NumPy effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!