Hoe hamming-afstand in python te berekenen (met voorbeelden)
De Hamming-afstand tussen twee vectoren is eenvoudigweg de som van de overeenkomstige elementen die tussen de vectoren verschillen.
Stel dat we bijvoorbeeld de volgende twee vectoren hebben:
x = [1, 2, 3, 4] y = [1, 2, 5, 7]
De Hamming-afstand tussen de twee vectoren zou 2 zijn, aangezien dit het totale aantal overeenkomende elementen is met verschillende waarden.
Om de Hamming-afstand tussen twee arrays in Python te berekenen, kunnen we de functie hamming() uit de bibliotheek scipy.spatial.distance gebruiken, die de volgende syntaxis gebruikt:
scipy. spatial . distance . hamming (array1, array2)
Houd er rekening mee dat deze functie het percentage overeenkomende elementen retourneert dat tussen de twee arrays verschilt.
Om de Hamming-afstand te verkrijgen, kunnen we dus eenvoudigweg vermenigvuldigen met de lengte van een van de tabellen:
scipy. spatial . distance . hamming (array1, array2) * len (array1)
Deze tutorial biedt verschillende voorbeelden van praktisch gebruik van deze functie.
Voorbeeld 1: Hamming-afstand tussen binaire arrays
De volgende code laat zien hoe je de Hamming-afstand berekent tussen twee arrays die elk slechts twee mogelijke waarden bevatten:
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
De Hamming-afstand tussen de twee tafels is 2 .
Voorbeeld 2: Hamming-afstand tussen numerieke arrays
De volgende code laat zien hoe u de Hamming-afstand berekent tussen twee arrays die elk verschillende numerieke waarden bevatten:
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
De Hamming-afstand tussen de twee tafels is 3 .
Voorbeeld 3: Hamming-afstand tussen stringarrays
De volgende code laat zien hoe u de Hamming-afstand berekent tussen twee arrays die elk verschillende tekenwaarden bevatten:
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
De Hamming-afstand tussen de twee tafels is 1 .
Aanvullende bronnen
Hoe de Euclidische afstand in Python te berekenen
Hoe Mahalanobis-afstand in Python te berekenen
Hoe Jaccard-gelijkenis in Python te berekenen