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


Манхэттенское расстояние между двумя векторами, A и B , рассчитывается как:

Σ|А я – В я |

где i — i -й элемент в каждом векторе.

Это расстояние используется для измерения различия между двумя векторами и обычно используется во многих алгоритмах машинного обучения .

В этом руководстве показаны два способа вычисления манхэттенского расстояния между двумя векторами в Python.

Способ 1: напишите пользовательскую функцию

В следующем коде показано, как создать пользовательскую функцию для вычисления манхэттенского расстояния между двумя векторами в Python:

from math import sqrt

#create function to calculate Manhattan distance 
def manhattan(a, b):
 return sum ( abs (val1-val2) for val1, val2 in zip (a,b))

#define vectors
A = [2, 4, 4, 6]
B = [5, 5, 7, 8]

#calculate Manhattan distance between vectors
manhattan(A, B)

9

Манхэттенское расстояние между этими двумя векторами оказывается равным 9 .

Мы можем подтвердить это правильно, быстро рассчитав манхэттенское расстояние вручную:

Σ|А я – В я | = |2-5| + |4-5| + |4-7| + |6-8| знак равно 3 + 1 + 3 + 2 = 9 .

Способ 2: используйте функцию cityblock()

Другой способ рассчитать манхэттенское расстояние между двумя векторами — использовать функцию cityblock() из пакета SciPy:

from scipy. spatial.distance import cityblock

#define vectors
A = [2, 4, 4, 6]
B = [5, 5, 7, 8]

#calculate Manhattan distance between vectors
cityblock(A, B)

9

Снова манхэттенское расстояние между этими двумя векторами оказывается равным 9 .

Обратите внимание, что мы также можем использовать эту функцию, чтобы найти манхэттенское расстояние между двумя столбцами в кадре данных pandas:

from scipy. spatial.distance import cityblock
import pandas as pd

#define DataFrame
df = pd.DataFrame({'A': [2, 4, 4, 6],
 'B': [5, 5, 7, 8],
 'C': [9, 12, 12, 13]})

#calculate Manhattan distance between columns A and B 
cityblock(df.A , df.B )

9

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

Как рассчитать евклидово расстояние в Python
Как рассчитать расстояние Хэмминга в Python
Как рассчитать расстояние Левенштейна в Python
Как рассчитать расстояние Махаланобиса в Python

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