📜  numpy 数组之间的距离 - Python (1)

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

Numpy数组之间的距离

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数组之间常见距离的计算方法,开发者可以根据实际情况选择合适的距离度量方式。