Numpy 中的自相关

在数据科学中,数据集的变量可以某种方式相互关联。该关系可以是直接成比例的,也可以是间接成比例的。一个变量的简单更改可能会稍微更改某些变量,或者可能会彻底更改。这种现象称为相关。

自相关是指一组时间信号与其自身的过时或旧版本之间的相关性。两组时间信号之间有一些时间差。

计算 NumPy 中的自相关

稳健的数据科学库 NumPy 具有内置函数 correlate(),可用于查找两个一维序列之间的相关性。它接受两个一维数组和一种模式。

模式类型可以是 validsamefull,并且此参数是可选的。此参数的默认值为 valid

要了解有关此函数的更多信息,请参阅官方文档

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)

输出:

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

在上面的代码中,我们首先定义一个数字列表,然后使用 NumPy 的 array() 方法将其转换为 NumPy 数组。然后,我们将感兴趣的方法称为 correlate(),以计算数据的自相关。我们正在使用完全模式进行计算。

结果存储在 result 变量中,然后进行切片。切片部分至关重要,因为 correlate() 方法返回的数组大小为 2 *我们数组的长度-1,而我们感兴趣的值位于后半部分,即 [(result.size // 2), result.size)