如何在 python 中计算欧几里得距离(附示例)


两个向量 A 和 B 之间的欧氏距离计算如下:

欧氏距离 = √ Σ(A i -B i ) 2

要在Python中计算两个向量之间的欧几里德距离,我们可以使用numpy.linalg.norm函数:

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14, 17, 11, 8])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

12.409673645990857

两个向量之间的欧几里得距离为12.40967

请注意,如果两个向量的长度不同,此函数将产生警告消息:

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

ValueError : operands could not be broadcast together with shapes (7,) (10,) 

请注意,我们还可以使用此函数来计算 pandas DataFrame 的两列之间的欧几里得距离:

 #import functions
import pandas as pd 
import numpy as np
from numpy. linalg import norm

#define DataFrame with three columns
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#calculate Euclidean distance between 'points' and 'assists' 
norm(df[' points '] - df[' assists '])

40.496913462633174

两列之间的欧几里得距离为40.49691

评论

1.在 Python 中计算欧几里德距离的方法有多种,但正如 Stack Overflow 线程所解释的,这里解释的方法是最快的。

2.您可以在此处找到numpy.linalg.norm函数的完整文档。

3.您可以参考此维基百科页面来了解有关欧氏距离的更多信息。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注