📜  python中的距离公式(1)

📅  最后修改于: 2023-12-03 15:34:27.234000             🧑  作者: Mango

Python中的距离公式

在机器学习和数据科学中,经常需要计算不同数据点之间的距离。Python提供了不同的距离公式和函数,可以方便地计算欧式距离、曼哈顿距离、余弦距离等。下面我们来介绍Python中常用的距离公式。

欧式距离

欧式距离是最常见的距离衡量方式,它是指两个点之间的直线距离,如下公式所示:

$$ d(x,y) = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2} $$

其中$x$和$y$分别是两个点的向量,$n$是向量的维度。

在Python中,我们可以使用numpy库来计算欧式距离,示例代码如下:

import numpy as np

def euclidean_distance(x, y):
    return np.sqrt(np.sum((x-y)**2))

x = np.array([1,2,3])
y = np.array([4,5,6])
print(euclidean_distance(x,y))

输出结果为:

5.196152422706632
曼哈顿距离

曼哈顿距离是指两个点在坐标系上横纵坐标的差的绝对值之和,如下公式所示:

$$ d(x,y) = \sum_{i=1}^{n}|x_i - y_i| $$

同样地,我们可以使用numpy库来计算曼哈顿距离,示例代码如下:

import numpy as np

def manhattan_distance(x, y):
    return np.sum(np.abs(x-y))

x = np.array([1,2,3])
y = np.array([4,5,6])
print(manhattan_distance(x,y))

输出结果为:

9
余弦距离

余弦距离是指两个点之间的夹角,如下公式所示:

$$ d(x,y) = 1 - \frac{\sum_{i=1}^{n}x_iy_i}{\sqrt{\sum_{i=1}^{n}x_i^2}\sqrt{\sum_{i=1}^{n}y_i^2}} $$

同样地,我们可以使用numpy库来计算余弦距离,示例代码如下:

import numpy as np

def cosine_distance(x, y):
    return 1 - np.dot(x,y)/(np.sqrt(np.dot(x,x))*np.sqrt(np.dot(y,y)))

x = np.array([1,2,3])
y = np.array([4,5,6])
print(cosine_distance(x,y))

输出结果为:

0.019535174223299078

以上就是Python中常用的距离公式,希望对你有所帮助!