我试图计算numpy数组中包含的多个时间序列之间的成对距离.请参阅下面的代码
print(type(sales))
print(sales.shape)
<class 'numpy.ndarray'>
(687, 157)
Run Code Online (Sandbox Code Playgroud)
因此,sales包含长度为157的687个时间序列.使用pdist计算时间序列之间的DTW距离.
import fastdtw
import scipy.spatial.distance as sd
def my_fastdtw(sales1, sales2):
return fastdtw.fastdtw(sales1,sales2)[0]
distance_matrix = sd.pdist(sales, my_fastdtw)
Run Code Online (Sandbox Code Playgroud)
---编辑:尝试没有pdist()-----
distance_matrix = []
m = len(sales)
for i in range(0, m - 1):
for j in range(i + 1, m):
distance_matrix.append(fastdtw.fastdtw(sales[i], sales[j]))
Run Code Online (Sandbox Code Playgroud)
---编辑:并行化内循环-----
from joblib import Parallel, delayed
import multiprocessing
import fastdtw
num_cores = multiprocessing.cpu_count() - 1
N = 687
def my_fastdtw(sales1, sales2):
return fastdtw.fastdtw(sales1,sales2)[0]
results = [[] for i in range(N)] …Run Code Online (Sandbox Code Playgroud)