目录
一、 欧氏距离(Euclidean Distance)
1、简介
- 欧氏距离是最常见的距离度量方法之一。它衡量了两个点之间的直线距离。
- 在二维空间中,欧氏距离可以用以下公式表示:
,其中 p 和 q 是两个点的坐标,n 是维度数量。
2、代码实现
- 计算两个二维点
和
之间的欧氏距离。
-
import math def euclidean_distance(p, q): distance = math.sqrt((p[0] - q[0])**2 + (p[1] - q[1])**2) return distance p = (1, 2) q = (3, 4) distance = euclidean_distance(p, q) print("欧氏距离:", distance)
二、曼哈顿距离(Manhattan Distance)
1、简介
- 曼哈顿距离是衡量两点之间的城市街道距离,即沿着网格线的距离。
- 在二维空间中,曼哈顿距离可以用以下公式表示:
,其中 p 和 q 是两个点的坐标,n 是维度数量。
2、代码实现
- 计算两个二维点
和
之间的曼哈顿距离。
-
def manhattan_distance(p, q): distance = abs(p[0] - q[0]) + abs(p[1] - q[1]) return distance p = (1, 2) q = (3, 4) distance = manhattan_distance(p, q) print("曼哈顿距离:", distance)
三、切比雪夫距离(Chebyshev Distance)
1、简介
- 切比雪夫距离是衡量两个点在各个坐标轴上的最大差值。
- 在二维空间中,切比雪夫距离可以用以下公式表示:
,其中 p 和 q 是两个点的坐标,n 是维度数量。
2、代码实现
- 计算两个二维点
和
之间的切比雪夫距离。
-
def chebyshev_distance(p, q): distance = max(abs(p[0] - q[0]), abs(p[1] - q[1])) return distance p = (1, 2) q = (3, 4) distance = chebyshev_distance(p, q) print("切比雪夫距离:", distance)
四、闵可夫斯基距离(Minkowski Distance)
1、简介
- 闵可夫斯基距离是欧氏距离和曼哈顿距离的一般化形式。
- 闵可夫斯基距离可以表示为:
,其中 p 和 q 是两个点的坐标,n 是维度数量,r 是一个非负整数。
- 当 r=1 时,它等同于曼哈顿距离;当 r=2 时,等同于欧氏距离。
2、代码实现
- 计算两个二维点
和
之间的闵可夫斯基距离。
-
def minkowski_distance(p, q, r): distance = sum(abs(p[i] - q[i])**r for i in range(len(p)))**(1/r) return distance p = (1, 2) q = (3, 4) r = 2 # 欧氏距离 distance = minkowski_distance(p, q, r) print("闵可夫斯基距离 (r={}):".format(r), distance) r = 1 # 曼哈顿距离 distance = minkowski_distance(p, q, r) print("闵可夫斯基距离 (r={}):".format(r), distance)