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