如何用python计算距堪培拉的距离(举例)
两个向量 A 和 B 之间的堪培拉距离计算如下:
距堪培拉的距离 = Σ |A i -B i | / (|A i | + |B i |)
金子:
- A i :向量 A 的第 i 个值
- B i :向量 B 中的第 i个值
例如,假设我们有以下两个向量:
- A = [2, 4, 4, 6]
- B = [5, 5, 7, 8]
我们将计算 A 和 B 之间的堪培拉距离如下:
- 距堪培拉的距离 = |2-5|/(2+5) + |4-5|/(4+5) + |4-7|/(4+7) + |6-8|/(6+8 ) )
- 距堪培拉的距离 = 3/7 + 1/9 + 3/11 + 2/14
- 距堪培拉的距离 = 0.95527
这两个向量之间的堪培拉距离是0.95527 。
以下示例演示如何在 Python 中计算这两个精确向量之间的堪培拉距离。
示例:用 Python 计算距堪培拉的距离
首先,我们创建一个 NumPy 数组来保存每个向量:
import numpy as np #define two arrays array1 = np. array ([2, 4, 4, 6]) array2 = np. array ([5, 5, 7, 8])
然后,我们可以使用Python中SciPy包中的canberra()函数来计算两个向量之间的堪培拉距离:
from scipy. spatial import distance
#calculate Canberra distance between the arrays
distance. canberra (array1, array2)
0.9552669552
两个向量之间的堪培拉距离为0.95527 。
请注意,该值与我们之前手动计算的值相对应。
注意:您可以在此处从SciPy包中找到canberra()函数的完整文档。
其他资源
以下教程解释了如何在 Python 中计算其他常见距离度量:
如何在Python中计算欧几里德距离
如何用 Python 计算曼哈顿距离
如何在 Python 中计算汉明距离
如何在 Python 中计算马氏距离
如何在Python中计算编辑距离