NumPy Autocorrelation

Vaibhav Vaibhav 22 giugno 2021
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).

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.