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