Як обчислити відстань хеммінга в 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
Як розрахувати подібність Jaccard у Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *