Wednesday 27 September 2017

Numpy Moving Average Funktion


Hmmm, es scheint, diese quoteasy to implementquot Funktion ist eigentlich ziemlich einfach, falsch zu bekommen und hat eine gute Diskussion über Speicher-Effizienz gefördert. I39m glücklich, aufblasen zu haben, wenn es bedeutet, dass etwas nach rechts gemacht worden ist. Ndash Richard NumPys Mangel an einer bestimmten Domain-spezifische Funktion ist vielleicht aufgrund der Core Teams Disziplin und Treue zu NumPys Prime-Direktive: bieten einen N-dimensionalen Array-Typ. Sowie Funktionen zum Erstellen und Indizieren dieser Arrays. Wie viele grundlegende Ziele, diese ist nicht klein, und NumPy macht es brillant. Das (viel) grßere SciPy enthält eine viel grßere Sammlung von domänenspezifischen Bibliotheken (sogenannte Unterpakete von SciPy-Devs), beispielsweise numerische Optimierung (Optimierung), Signalverarbeitung (Signal) und Integralrechnung (integrieren). Meine Vermutung ist, dass die Funktion, die Sie nach ist in mindestens einem der SciPy-Unterpakete (scipy. signal vielleicht) aber ich würde zuerst in der Sammlung von SciPy Scikits suchen. Identifizieren die relevanten Scikit (s) und suchen die Funktion von Interesse dort. Scikits sind unabhängig voneinander entwickelte Pakete, die auf NumPy / SciPy basieren und auf eine bestimmte technische Disziplin gerichtet sind (z. B. scikits-image, scikits-learn etc.) Mehrere davon waren (insbesondere das geniale OpenOpt für numerische Optimierung) hoch angesehen, reif Projekte lange vor der Wahl, um unter der relativ neuen Scikits Rubrik wohnen. Auf der Homepage der Scikits sind über 30 solcher Scikits aufgelistet. Obwohl mindestens einige von ihnen nicht mehr unter aktiver Entwicklung sind. Nach diesem Rat würden Sie zu scikits-timeseries führen, aber das Paket ist nicht mehr unter aktiver Entwicklung In Wirklichkeit ist Pandas geworden, AFAIK, die de facto NumPy-basierte Zeitreihen-Bibliothek. Pandas hat mehrere Funktionen, die verwendet werden können, um einen gleitenden Durchschnitt zu berechnen, der einfachste ist wahrscheinlich rollingmean. Die Sie so verwenden: Nun, rufen Sie einfach die Funktion Rolling Mean Passing in der Serie Objekt und eine Fenstergröße. Die in meinem Beispiel unten ist 10 Tage. Ob es funktioniert hat - z. Verglichen Werte 10-15 in der ursprünglichen Serie gegenüber der neuen Serie geglättet mit rollenden Mittel Die Funktion Rolling Mean, zusammen mit etwa ein Dutzend oder so andere Funktion sind informell gruppiert in der Pandas-Dokumentation unter der Rubrik Moving-Fenster-Funktionen eine zweite, verwandte Gruppe von Funktionen In Pandas wird als exponentiell gewichtete Funktionen bezeichnet (zB ewma, die einen exponentiell verschobenen gewichteten Durchschnitt berechnet). Die Tatsache, dass diese zweite Gruppe nicht in den ersten (Moving-Window-Funktionen) enthalten ist, liegt vielleicht daran, dass die exponentiell gewichteten Transformationen nicht auf ein Fenster mit fester Länge angewiesen sind. Advanced Matplotlib Series (nur Videos und Endgeräte) Sobald Sie ein grundlegendes Verständnis davon haben Matplotlib arbeitet, Sie haben vielleicht ein Interesse daran, Ihr Wissen ein wenig weiter zu bringen. Einige der komplexesten grafischen Bedürfnisse kommen in Form von Aktien-Analyse und Charting, oder Forex. In diesem Tutorial-Serie, wurden zu decken, wo und wie automatisch greifen, sortieren und organisieren einige freie Aktien-und Forex-Preise Daten. Als nächstes wollten wir es mit einigen der beliebtesten Indikatoren als Beispiel. Hier, gut tun MACD (Moving Average Convergence Divergence) und der RSI (Relative Strength Index). Damit wir diese berechnen können, verwenden wir NumPy, aber sonst berechnen wir diese alle auf unseren eigenen. Um die Daten zu erwerben, würden die Yahoo Finance API verwenden. Diese API gibt die historischen Preisdaten für das von uns angegebene Tickersymbol und die von Ihnen gewünschte Zeitlänge zurück. Je größer der Zeitrahmen ist, desto geringer ist die Auflösung der Daten, die wir erhalten. Wenn Sie also nach einem eintägigen Zeitrahmen für AAPL fragen, erhalten Sie 3-Minuten-OHLC-Daten (open high low close). Wenn Sie für 10 Jahre Wert fragen, erhalten Sie täglich Daten oder sogar 3 Tage Zeitrahmen. Beachten Sie dies und wählen Sie einen Zeitrahmen, der Ihre Ziele passt. Auch wenn Sie einen niedrig genug Zeitrahmen wählen und hoch genug Granularität erhalten, wird die API die Zeit in einem Unix-Zeitstempel zurückgeben, verglichen mit einem Datumsstempel. Sobald wir die Daten haben, wollen wir sie grafisch darstellen. Um zu beginnen, gut gerade die Linien, aber die meisten Leute wollen einen Kerzenstab stattdessen. Wir verwenden Matplotlibs Candlestick-Funktion, und machen Sie eine einfache Bearbeitung, um es leicht zu verbessern. Auf dieser Tabelle, auch überlagern ein paar gleitende Durchschnitt Berechnungen. Danach wollten wir einen Subplot erstellen und die Lautstärke grafisch darstellen. Wir können das Volumen auf demselben Subplot nicht sofort plotten, weil die Skala unterschiedlich ist. Um zu beginnen, werden wir das Volumen unterhalb in einem anderen Sub-Diagramm, aber schließlich tatsächlich tatsächlich überlagern Volumen auf die gleiche Figur und machen es etwas transparent. Dann wurden zwei Sub-Plots hinzuzufügen und eine RSI-Indikator oben und die MACD-Anzeige auf der Unterseite. Für alle diese, würden die X-Achse zu teilen, so können wir vergrößern und verkleinern in 1-Plot, und sie werden alle mit dem gleichen Zeitrahmen. Wurden zu plotten in Datum-Format für die X-Achse, und passen Sie so ziemlich alle Dinge, die wir für die Ästhetik. Dazu gehören wechselnde Tick-Beschriftungsfarben, Rand / Wirbelsäulenfarben, Linienfarben, OHLC-Leuchterfarben, lernen, wie man einen gefüllten Graphen (für Volumen), Histogramme, zeichnende Linien (hline für RSI) und vieles mehr erstellt. Heres das Endergebnis (Ich habe sowohl eine Python 3 und eine Python-2-Version für diese Python 3 zuerst, dann Python 2. Stellen Sie sicher, dass Sie mit der, die Ihre Python-Version entspricht): Das ist alles für jetzt. Wollen Sie mehr Tutorials Kopf auf die Home PageWe zuvor eingeführt, wie man schaffen, gleitende Durchschnitte mit Python zu schaffen. Dieses Tutorial wird eine Fortsetzung dieses Themas sein. Ein gleitender Durchschnitt im Rahmen von Statistiken, auch Rolling / Run Average genannt, ist eine Art von endlicher Impulsantwort. In unserem vorangegangenen Tutorial haben wir die Werte der Arrays x und y: Let8217s plot x gegen den gleitenden Durchschnitt von y aufgetragen, den wir yMA nennen wollen: Erstens haben let8217s die Länge beider Arrays gleich: Und dies im Kontext: Das Ergebnis Diagramm: Um dies zu verstehen, let8217s plotten zwei verschiedene Beziehungen: x vs y und x vs MAy: Der gleitende Durchschnitt hier ist die grüne Handlung, die bei 3 beginnt: Share this: Gefällt mir: Post navigation Lassen Sie eine Antwort Antworten abbrechen Sehr nützlich I Möchte den letzten Teil auf großen Datensätzen zu lesen hoffen, es wird bald kommen8230 d Blogger wie folgt:

No comments:

Post a Comment