Como calcular a distância de hamming em python (com exemplos)


A distância de Hamming entre dois vetores é simplesmente a soma dos elementos correspondentes que diferem entre os vetores.

Por exemplo, suponha que temos os dois vetores a seguir:

 x = [1, 2, 3, 4]

y = [1, 2, 5, 7]

A distância de Hamming entre os dois vetores seria 2 , pois este é o número total de elementos correspondentes que possuem valores diferentes.

Para calcular a distância de Hamming entre dois arrays em Python, podemos usar a função hamming() da biblioteca scipy.spatial.distance, que usa a seguinte sintaxe:

 scipy. spatial . distance . hamming (array1, array2)

Observe que esta função retorna a porcentagem de elementos correspondentes que diferem entre as duas matrizes.

Assim, para obter a distância de Hamming podemos simplesmente multiplicar pelo comprimento de uma das tabelas:

 scipy. spatial . distance . hamming (array1, array2) * len (array1)

Este tutorial fornece vários exemplos de uso prático desta função.

Exemplo 1: distância de Hamming entre matrizes binárias

O código a seguir mostra como calcular a distância de Hamming entre duas matrizes, cada uma contendo apenas dois valores possíveis:

 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

A distância de Hamming entre as duas tabelas é 2 .

Exemplo 2: distância de Hamming entre matrizes numéricas

O código a seguir mostra como calcular a distância de Hamming entre duas matrizes, cada uma contendo vários valores numéricos:

 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

A distância de Hamming entre as duas tabelas é 3 .

Exemplo 3: distância de Hamming entre matrizes de strings

O código a seguir mostra como calcular a distância de Hamming entre duas matrizes, cada uma contendo vários valores de caracteres:

 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

A distância de Hamming entre as duas tabelas é 1 .

Recursos adicionais

Como calcular a distância euclidiana em Python
Como calcular a distância de Mahalanobis em Python
Como calcular a similaridade de Jaccard em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *