首页 文章资讯内容详情

使用 SciPy 计算 Minkowski 距离

2026-06-02 2 花语

闵可夫斯基距离是欧几里得距离和曼哈顿距离的广义形式,是两点之间的距离。它主要用于向量的距离相似性。

SciPy为我们提供了一个名为minkowski的函数,该函数返回两点之间的Minkowski距离。让我们看看如何使用SciPy库计算两点之间的Minkowski距离-

示例

# Importing the SciPy library fromscipy.spatialimport distance # Defining the points A = (1, 2, 3, 4, 5, 6) B = (7, 8, 9, 10, 11, 12) print(A, B)输出结果((1, 2, 3, 4, 5, 6), (7, 8, 9, 10, 11, 12))

示例

# Importing the SciPy library fromscipy.spatialimport distance # Defining the points A = (1, 2, 3, 4, 5, 6) B = (7, 8, 9, 10, 11, 12)# Computing the Minkowski distance minkowski_distance = distance.minkowski(A, B, p=3) print(Minkowski Distance b/w, A, and, B, is: , minkowski_distance)输出结果Minkowski Distance b/w (1, 2, 3, 4, 5, 6) and (7, 8, 9, 10, 11, 12) is: 10.902723556992836

我们已经用order(p)=3计算了闵可夫斯基距离。但是当阶数为2时,它将代表欧几里得距离,而当阶数为1时,它将代表曼哈顿距离。让我们用下面给出的例子来理解它-

示例

# Importing the SciPy library fromscipy.spatialimport distance # Defining the points A = (1, 2, 3, 4, 5, 6) B = (7, 8, 9, 10, 11, 12) A, B输出结果((1, 2, 3, 4, 5, 6), (7, 8, 9, 10, 11, 12))

示例

# minkowski and manhattan distance minkowski_distance_with_order1 = distance.minkowski(A, B, p=1) print(Minkowski Distance of order(P)1:,minkowski_distance_with_order1, \nManhattan Distance: ,manhattan_distance)输出结果Minkowski Distance of order(P)1: 36.0 Manhattan Distance: 36

示例

# minkowski and euclidean distance minkowski_distance_with_order2 = distance.minkowski(A, B, p=2) print(Minkowski Distance of order(P)2:,minkowski_distance_order_2, \nEuclidean Distance: ,euclidean_distance)输出结果Minkowski Distance of order(P)2: 14.696938456699069 Euclidean Distance: 14.696938456699069