cost_matrix

cost_matrix(x: ndarray, y: ndarray, method: str | Callable[[ndarray, ndarray, Any], float] | None = None, **kwargs: Unpack[DistanceKwargs]) ndarray[source]

Compute the alignment path and distance between two time series.

Parameters:
xnp.ndarray, of shape (n_channels, n_timepoints) or (n_timepoints,)

First time series.

ynp.ndarray, of shape (m_channels, m_timepoints) or (m_timepoints,)

Second time series.

methodstr or Callable

The distance to use. A list of valid distances can be found in the documentation for aeon.distances.get_distance_function or by calling the function aeon.distances.get_distance_function_names.

kwargsAny

Arguments for distance. Refer to each distance documentation for a list of possible arguments.

Returns:
np.ndarray (n_timepoints, m_timepoints)

cost matrix between x and y.

Raises:
ValueError

If x and y are not 1D, or 2D arrays. If distance is not one of the supported strings or a callable.

Examples

>>> import numpy as np
>>> from aeon.distances import cost_matrix
>>> x = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
>>> y = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
>>> cost_matrix(x, y, method="dtw")
array([[  0.,   1.,   5.,  14.,  30.,  55.,  91., 140., 204., 285.],
       [  1.,   0.,   1.,   5.,  14.,  30.,  55.,  91., 140., 204.],
       [  5.,   1.,   0.,   1.,   5.,  14.,  30.,  55.,  91., 140.],
       [ 14.,   5.,   1.,   0.,   1.,   5.,  14.,  30.,  55.,  91.],
       [ 30.,  14.,   5.,   1.,   0.,   1.,   5.,  14.,  30.,  55.],
       [ 55.,  30.,  14.,   5.,   1.,   0.,   1.,   5.,  14.,  30.],
       [ 91.,  55.,  30.,  14.,   5.,   1.,   0.,   1.,   5.,  14.],
       [140.,  91.,  55.,  30.,  14.,   5.,   1.,   0.,   1.,   5.],
       [204., 140.,  91.,  55.,  30.,  14.,   5.,   1.,   0.,   1.],
       [285., 204., 140.,  91.,  55.,  30.,  14.,   5.,   1.,   0.]])