NumPy Autocorrelation
Nella scienza dei dati, le variabili di un set di dati possono essere correlate l’una all’altra in un modo o nell’altro. La relazione potrebbe essere direttamente proporzionale o indirettamente proporzionale. Un semplice cambiamento in una variabile potrebbe cambiare leggermente qualche variabile o forse, drasticamente. Questo fenomeno è noto come correlazione.
L’autocorrelazione si riferisce a una correlazione tra un insieme di segnali temporali con una versione obsoleta o vecchia di se stesso. Le due serie di segnali temporali hanno una certa differenza di fuso orario tra di loro.
Calcola l’autocorrelazione in NumPy
La robusta libreria di data science, NumPy, ha una funzione incorporata, correlate()
, che può essere utilizzata per trovare una correlazione tra due sequenze 1D. Accetta due array 1D e un tipo di modalità.
Il tipo di modalità può essere valid
, same
, e full
e questo parametro è opzionale. Il valore predefinito per questo parametro è valid
.
Per saperne di più su questa funzione, fare riferimento a i documenti ufficiali
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)
Produzione:
[385 330 276 224 175 130 90 56 29 10]
Nel codice sopra, definiamo prima una lista di numeri e poi lo convertiamo in un array NumPy usando il metodo array()
di NumPy. Quindi chiamiamo il nostro metodo di interesse correlate()
per calcolare l’autocorrelazione dei nostri dati. Stiamo usando la modalità full
per i calcoli.
I risultati vengono memorizzati in una variabile result
e quindi suddivisi. La parte di taglio è cruciale poiché il metodo correl()
restituisce un array di dimensione 2 * lunghezza del nostro array - 1
, e i valori di nostro interesse si trovano nella seconda metà, cioè, [(result.size // 2), result.size)
.