📅  最后修改于: 2023-12-03 15:03:19.080000             🧑  作者: Mango
Numpy是Python中用于科学计算的一个基础库,它提供了许多用于数组计算的函数。其中一个常见的任务是计算数组之间的距离。
欧几里得距离是最常用的距离度量方式,它计算两个点之间的距离,也可以被看作是两个向量之间的距离。在numpy中,可以使用numpy.linalg.norm
函数来计算欧几里得距离。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
distance = np.linalg.norm(a-b)
print(distance) # 5.19615242271
曼哈顿距离计算两个点之间沿坐标轴的距离总和。在numpy中,可以使用numpy.abs
函数计算曼哈顿距离。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
distance = np.sum(np.abs(a-b))
print(distance) # 9
切比雪夫距离计算两点之间各坐标轴距离的最大值。在numpy中,可以使用numpy.max
函数计算切比雪夫距离。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
distance = np.max(np.abs(a-b))
print(distance) # 3
闵可夫斯基距离是欧几里得距离、曼哈顿距离和切比雪夫距离的一般形式。在numpy中,可以使用scipy.spatial.distance
模块的minkowski
函数计算闵可夫斯基距离。
import numpy as np
from scipy.spatial.distance import minkowski
a = np.array([1,2,3])
b = np.array([4,5,6])
distance = minkowski(a, b, p=3)
print(distance) # 3.30192724889
以上就是numpy数组之间常见距离的计算方法,开发者可以根据实际情况选择合适的距离度量方式。