pyts.metrics.dtw_region(x=None, y=None, dist='square', region=None, precomputed_cost=None, return_cost=False, return_accumulated=False, return_path=False)[source]

Dynamic Time Warping (DTW) distance with a constraint region.

x : array-like, shape = (n_timestamps_1,)

First array. Ignored if dist == 'precomputed'.

y : array-like, shape = (n_timestamps_2,)

Second array. Ignored if dist == 'precomputed'.

dist : ‘square’, ‘absolute’, ‘precomputed’ or callable (default = ‘square’)

Distance used. If ‘square’, the squared difference is used. If ‘absolute’, the absolute difference is used. If ‘precomputed’, precomputed_cost must be the cost matrix. If callable, it must be a function with a numba.njit() decorator that takes as input two numbers (two arguments) and returns a number.

region : None or array-like, shape = (2, n_timestamps_1)

Constraint region. If None, no constraint region is used. Otherwise, the first row consists of the starting indices (included) and the second row consists of the ending indices (excluded) of the valid rows for each column.

precomputed_cost : array-like, shape = (n_timestamps_1, n_timestamps_2) (default = None).

Precomputed cost matrix between the time series. Ignored if dist != 'precomputed'.

return_cost : bool (default = False)

If True, the cost matrix is returned.

return_accumulated : bool (default = False)

If True, the accumulated cost matrix is returned.

return_path : bool (default = False)

If True, the optimal path is returned.

dtw_dist : float

The DTW distance between the two arrays.

cost_mat : array, shape = (n_timestamps_1, n_timestamps_2)

Cost matrix. Only returned if return_cost=True.

acc_cost_mat : array, shape = (n_timestamps_1 n_timestamps_2)

Accumulated cost matrix. Only returned if return_accumulated=True.

path : array, shape = (2, path_length)

The optimal path along the cost matrix. The first row consists of the indices of the optimal path for x while the second row consists of the indices of the optimal path for y. Only returned if return_path=True.


>>> from pyts.metrics import dtw_region
>>> x = [0, 1, 1]
>>> y = [2, 0, 1]
>>> region = [[0, 1, 1], [2, 2, 3]]
>>> dtw_region(x, y, region=region)