NumPy Autokorrelation
In der Datenwissenschaft können Variablen eines Datensatzes auf die eine oder andere Weise miteinander in Beziehung gesetzt werden. Die Beziehung könnte direkt proportional oder indirekt proportional sein. Eine einfache Änderung in einer Variablen kann eine Variable geringfügig oder möglicherweise drastisch ändern. Dieses Phänomen ist als Korrelation bekannt.
Autokorrelation bezieht sich auf eine Korrelation zwischen einer Reihe von Zeitsignalen mit einer veralteten oder alten Version von sich. Die beiden Sätze von Zeitsignalen weisen einen gewissen Zeitunterschied zwischen ihnen auf.
Berechnen der Autokorrelation in NumPy
Die robuste datenwissenschaftliche Bibliothek NumPy verfügt über die integrierte Funktion correlate()
, mit der eine Korrelation zwischen zwei 1D-Sequenzen gefunden werden kann. Es akzeptiert zwei 1D-Arrays und einen Modus-Typ.
Der Modustyp kann valid
, same
und full
sein, und dieser Parameter ist optional. Der Standardwert für diesen Parameter ist valid
.
Weitere Informationen zu dieser Funktion finden Sie in den offiziellen Dokumenten
import numpy
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray = numpy.array(myArray)
result = numpy.correlate(myArray, myArray, mode="full")
result = result[result.size // 2 :]
print(result)
Ausgabe:
[385 330 276 224 175 130 90 56 29 10]
Im obigen Code definieren wir zuerst eine Liste von Zahlen und konvertieren sie dann mit der Methode array()
von NumPy in ein NumPy-Array. Dann nennen wir unsere interessierende Methode corrate()
, um die Autokorrelation unserer Daten zu berechnen. Für die Berechnungen verwenden wir den Modus full
.
Die Ergebnisse werden in einer Variable result
gespeichert und dann in Scheiben geschnitten. Der Slicing-Teil ist entscheidend, da die Methode corrate()
ein Array der Größe 2 * Länge unseres Arrays - 1
zurückgibt und die Werte unseres Interesses in der zweiten Hälfte liegen, dh [(result.size // 2), result.size)
.