📅  最后修改于: 2023-12-03 15:06:49.282000             🧑  作者: Mango
欧几里得距离(Euclidean Distance)是在二维或三维空间中两个点之间的距离。在现实生活中,我们经常在数学、物理、机器学习和计算机视觉等领域中使用欧几里得距离。
NumPy是一个开源的Python科学计算库,在计算欧几里得距离时,它提供了一个非常方便和快速的方式。
NumPy提供的计算欧几里得距离的函数是numpy.linalg.norm()
。
numpy.linalg.norm()
函数的语法如下:
numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)
其中,参数说明如下:
x
:为输入的数组。ord
:为范数的种类。默认为None,表示使用默认的二范数(欧几里得距离)。还可以选择使用一范数、二范数或无穷范数等。axis
:为范数计算的维度。默认为None,计算所有元素的范数。还可以选择计算每行的范数或每列的范数。keepdims
:为是否保持原数组的维度。默认为False。假设有两个数组(矢量):a和b,分别如下所示:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
我们可以使用linalg.norm()函数来计算它们的欧几里得距离:
distance = np.linalg.norm(a-b)
print(distance)
代码运行结果为:
5.19615242271
因此,数组a和数组b之间的欧几里得距离为5.196。
同时,我们也可以计算多维数组之间的欧几里得距离。例如,假设我们有一个二维数组:
c = np.array([[1, 2], [3, 4], [5, 6]])
d = np.array([[7, 8], [9, 10], [11, 12]])
我们可以计算c和d之间的欧几里得距离:
distance = np.linalg.norm(c-d, axis=1, keepdims=True)
print(distance)
代码运行结果为:
[[ 8.48528137]
[11.3137085 ]
[14.14213562]]
因此,我们可以看到,c和d之间的欧几里得距离是一个包含三个元素的列向量。
在本文中,我们介绍了使用NumPy计算欧几里得距离的方法。我们可以使用NumPy提供的numpy.linalg.norm()
函数来计算二维或三维空间中的两个点之间的距离。同时,该函数也可以计算多维数组之间的欧几里得距离。