Autocorrelación en NumPy

Vaibhav Vaibhav 20 junio 2021
Autocorrelación en NumPy

En ciencia de datos, las variables de un conjunto de datos pueden estar relacionadas entre sí de una forma u otra. La relación puede ser directamente proporcional o indirectamente proporcional. Un simple cambio en una variable podría cambiar alguna variable levemente o tal vez drásticamente. Este fenómeno se conoce como correlación.

La autocorrelación se refiere a una correlación entre un conjunto de señales de tiempo con una versión obsoleta o antigua de sí mismo. Los dos conjuntos de señales de tiempo tienen alguna diferencia de tiempo entre ellos.

Calcular la autocorrelación en NumPy

La robusta biblioteca de ciencia de datos, NumPy, tiene una función incorporada, correlate(), que se puede utilizar para encontrar una correlación entre dos secuencias 1D. Acepta dos matrices 1D y un tipo de modo.

El tipo de modo puede ser valid, same y full, y este parámetro es opcional. El valor predeterminado de este parámetro es valid.

Para obtener más información sobre esta función, consulte los documentos oficiales

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)

Producción :

[385 330 276 224 175 130  90  56  29  10]

En el código anterior, primero definimos una lista de números y luego la convertimos en un array NumPy usando el método array() de NumPy. Luego llamamos a nuestro método de interés correlate() para calcular la autocorrelación de nuestros datos. Estamos usando el modo full para los cálculos.

Los resultados se almacenan en una variable result y luego se dividen. La parte de corte es crucial ya que el método correlate() devuelve un array de tamaño 2 * longitud de nuestra matriz - 1, y los valores de nuestro interés se encuentran en la segunda mitad, es decir, [(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.