如何用python计算汉明距离(附示例)
两个向量之间的汉明距离只是向量之间不同的相应元素的总和。
例如,假设我们有以下两个向量:
x = [1, 2, 3, 4] y = [1, 2, 5, 7]
两个向量之间的汉明距离将为2 ,因为这是具有不同值的匹配元素的总数。
要在 Python 中计算两个数组之间的汉明距离,我们可以使用 scipy.spatial.distance 库中的hamming()函数,该函数使用以下语法:
scipy. spatial . distance . hamming (array1, array2)
请注意,此函数返回两个数组之间不同的匹配元素的百分比。
因此,要获得汉明距离,我们可以简单地乘以其中一个表的长度:
scipy. spatial . distance . hamming (array1, array2) * len (array1)
本教程提供了该功能实际使用的几个示例。
示例 1:二进制数组之间的汉明距离
以下代码显示如何计算两个仅包含两个可能值的数组之间的汉明距离:
from scipy. spatial . distance import hamming #define arrays x = [0, 1, 1, 1, 0, 1] y = [0, 0, 1, 1, 0, 0] #calculate Hamming distance between the two arrays hamming(x, y) * len (x) 2.0
两个表之间的汉明距离为2 。
示例 2:数值数组之间的汉明距离
以下代码显示如何计算两个数组之间的汉明距离,每个数组都包含多个数值:
from scipy. spatial . distance import hamming #define arrays x = [7, 12, 14, 19, 22] y = [7, 12, 16, 26, 27] #calculate Hamming distance between the two arrays hamming(x, y) * len (x) 3.0
两个表之间的汉明距离为3 。
示例 3:字符串数组之间的汉明距离
以下代码显示如何计算两个数组之间的汉明距离,每个数组都包含多个字符值:
from scipy. spatial . distance import hamming #define arrays x = ['a', 'b', 'c', 'd'] y = ['a', 'b', 'c', 'r'] #calculate Hamming distance between the two arrays hamming(x, y) * len (x) 1.0
两个表之间的汉明距离为1 。