Dynamic Time Warping (DTW) algorithm with an O(N) time and memory complexity.
pip install fastdtw
import numpy as np from scipy.spatial.distance import euclidean from fastdtw import fastdtw x = np.array([[1,1], [2,2], [3,3], [4,4], [5,5]]) y = np.array([[2,2], [3,3], [4,4]]) distance, path = fastdtw(x, y, dist=euclidean) print(distance)
|||Stan Salvador, and Philip Chan. “FastDTW: Toward accurate dynamic time warping in linear time and space.” Intelligent Data Analysis 11.5 (2007): 561-580.|