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


Манхэттенское расстояние между двумя векторами A и B рассчитывается следующим образом:

Σ|А я – Б я |

где я — 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))
 
#definevectors
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

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

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

9

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

Обратите внимание, что мы также можем использовать эту функцию, чтобы найти манхэттенское расстояние между двумя столбцами в DataFrame 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *