Как рассчитать расстояние Хэмминга в Python (с примерами)


Расстояние Хэмминга между двумя векторами — это просто сумма соответствующих элементов, которые различаются между векторами.

Например, предположим, что у нас есть следующие два вектора:

x = [1, 2, 3, 4]

y = [1, 2, 5, 7]

Расстояние Хэмминга между двумя векторами будет равно 2 , так как это общее количество соответствующих элементов, имеющих разные значения.

Чтобы вычислить расстояние Хэмминга между двумя массивами в Python, мы можем использовать функцию hamming () из библиотеки scipy.spatial.distance, которая использует следующий синтаксис:

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 .

Дополнительные ресурсы

Как рассчитать евклидово расстояние в Python
Как рассчитать расстояние Махаланобиса в Python
Как рассчитать сходство Жаккара в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.