+-
如何解释numpy.correlate和numpy.corrcoef返回的值?

我有两个1D数组,我想看看它们之间的相互关系。我应该在numpy中使用什么程序?我正在使用numpy.corrcoef(arrayA, arrayB)numpy.correlate(arrayA, arrayB),但都给出了一些我无法理解或理解的结果。

有人可以阐明如何理解和解释这些数值结果(最好是举一个例子)?

12
投票

numpy.correlate仅返回两个向量的互相关。

如果需要了解互相关,则从http://en.wikipedia.org/wiki/Cross-correlation开始。

通过查看自相关函数(一个与自身互相关的向量,可以看到一个很好的例子:] >>

import numpy as np

# create a vector
vector = np.random.normal(0,1,size=1000) 

# insert a signal into vector
vector[::50]+=10

# perform cross-correlation for all data points
output = np.correlate(vector,vector,mode='full')

“代码图”

当两个数据集重叠时,这将返回具有最大值的梳齿/ shah函数。由于这是自相关,因此在两个输入信号之间不会有“滞后”。因此,相关的最大值是vector.size-1。

[如果仅需要重叠数据的相关值,则可以使用mode='valid'

7
投票

目前我只能对numpy.correlate发表评论。这是一个强大的工具。我已将其用于两个目的。首先是在另一个模式中找到一个模式:

1
投票

如果您对int

0
投票

阅读完所有教科书的定义和公式后,对初学者来说,看看如何从另一个派生出来可能很有用。首先关注两个向量之间只有成对相关的简单情况。