Comment calculer la distance de Hamming en Python (avec exemples)
La distance de Hamming entre deux vecteurs est simplement la somme des éléments correspondants qui diffèrent entre les vecteurs.
Par exemple, supposons que nous ayons les deux vecteurs suivants :
x = [1, 2, 3, 4] y = [1, 2, 5, 7]
La distance de Hamming entre les deux vecteurs serait 2 , puisqu’il s’agit du nombre total d’éléments correspondants qui ont des valeurs différentes.
Pour calculer la distance de Hamming entre deux tableaux en Python on peut utiliser la fonction hamming() de la bibliothèque scipy.spatial.distance, qui utilise la syntaxe suivante :
scipy.spatial.distance.hamming(array1, array2)
Notez que cette fonction renvoie le pourcentage d’éléments correspondants qui diffèrent entre les deux tableaux.
Ainsi, pour obtenir la distance de Hamming on peut simplement multiplier par la longueur d’un des tableaux :
scipy.spatial.distance.hamming(array1, array2) * len(array1)
Ce tutoriel fournit plusieurs exemples d’utilisation pratique de cette fonction.
Exemple 1 : Distance de Hamming entre les tableaux binaires
Le code suivant montre comment calculer la distance de Hamming entre deux tableaux contenant chacun seulement deux valeurs possibles :
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
La distance de Hamming entre les deux tableaux est de 2 .
Exemple 2 : Distance de Hamming entre des tableaux numériques
Le code suivant montre comment calculer la distance de Hamming entre deux tableaux contenant chacun plusieurs valeurs numériques :
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
La distance de Hamming entre les deux tableaux est de 3 .
Exemple 3 : Distance de Hamming entre les tableaux de chaînes
Le code suivant montre comment calculer la distance de Hamming entre deux tableaux contenant chacun plusieurs valeurs de caractères :
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
La distance de Hamming entre les deux tableaux est de 1 .
Ressources additionnelles
Comment calculer la distance euclidienne en Python
Comment calculer la distance de Mahalanobis en Python
Comment calculer la similarité Jaccard en Python