euclidean_distance#

euclidean_distance(x: ndarray, y: ndarray, **kwargs: Any) float[source]#

计算两个时间序列之间的欧几里得距离。

欧几里得距离支持 1d、2d 和 3d 数组。

两个长度为 m 的时间序列之间的欧几里得距离是平方距离的平方根,定义为

\[ed(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}\]
参数:
x: np.ndarray (1d 或 2d 数组)

第一个时间序列。

y: np.ndarray (1d 或 2d 数组)

第二个时间序列。

kwargs: Any

额外的 kwargs。对于欧几里得距离没有额外的 kwargs,但为了保持一致性而保留。

返回:
float

x 和 y 之间的欧几里得距离。

抛出:
ValueError

如果提供的 x 或 y 值不是 numpy 数组。如果 x 或 y 的维度超过 2。如果提供的度量字符串不是定义的有效字符串。如果提供的度量对象(类实例)没有继承自 NumbaDistance。如果解析的度量没有进行 no_python 编译。如果无法确定度量类型。

示例

>>> import numpy as np
>>> from sktime.distances import euclidean_distance
>>> x_1d = np.array([1, 2, 3, 4])  # 1d array
>>> y_1d = np.array([5, 6, 7, 8])  # 1d array
>>> euclidean_distance(x_1d, y_1d)
np.float64(8.0)
>>> x_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])  # 2d array
>>> y_2d = np.array([[9, 10, 11, 12], [13, 14, 15, 16]])  # 2d array
>>> euclidean_distance(x_2d, y_2d)
np.float64(22.627416997969522)