我有两个时间序列A和B,A的长度为
我通过在B上滑动A来计算A与所有子序列之间的距离。在Python中,代码如下:
m
,B的长度为n
。其中m << n
,两者的维度均为d
。我通过在B上滑动A来计算A与所有子序列之间的距离。在Python中,代码如下:
def sliding_dist(A,B)
n = len(B)
dist = np.zeros(n)
for i in range(n-m):
subrange = B[i:i+m,:]
distance = np.linalg.norm(A-subrange)
dist[i] = distance
return dist
现在这段代码执行起来需要很长时间,而且我有很多计算要做。我需要加快计算速度。我的猜测是可以通过使用卷积和频率域乘法(FFT)来实现。然而,我一直无法实现它。
有什么想法吗?:) 谢谢
n
的A的拼接,这样你只需要进行一次减法和一次调用norm()
函数?不确定具体的瓶颈在哪里。你能指定n
和m
的数量级吗? - undefined