我有一个向量数据的时间序列-每个点都是2D向量。我想计算一个自相关(或类似的东西,如果我在这里滥用该语言,请原谅)。假设在时间t的向量是v(t)。我想要的是计算矢量点积,以便我的相关性如下所示:

C(T)= ∑v⃗(t)·v⃗(t + T)

总和v(t)和v(t + T)存在。

是否有一种干净,紧凑的方式使用numpy做到这一点? (也很乐意尝试从scipy等答案。)谢谢。

最佳答案

我将假定v具有以下格式:

v = numpy.array( [[1,2], [4,2], [15,34], [2,3]] )


提取两个组件:

v1 = v[:,0]
v2 = v[:,1]


然后使用相关来计算每个组件的相关性:

C = numpy.correlate(v1,v1,'full') + numpy.correlate(v2,v2,'full')


由于相关是对称的,因此只需要一半的结果。正确的一半是:

C = C[(len(C)/2):]

关于python - 将向量数据与numpy相关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20819989/

10-11 09:31
查看更多