将矢量数据与numpy相关联

时间:2013-12-28 22:18:27

标签: python numpy vector cross-correlation

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

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

总结所有t s.t. v(t)和v(t + T)存在。

是否有一个干净,紧凑的方式与numpy这样做? (很乐意尝试从scipy等处获得答案。)谢谢。

1 个答案:

答案 0 :(得分:2)

我认为v具有以下格式:

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

提取两个组成部分:

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

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

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

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

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