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


A distância de Manhattan entre dois vetores, A e B , é calculada da seguinte forma:

Σ|A i – B i |

onde i é o i- ésimo elemento de cada vetor.

Essa distância é usada para medir a dissimilaridade entre dois vetores e é comumente usada em muitos algoritmos de aprendizado de máquina .

Este tutorial mostra duas maneiras de calcular a distância de Manhattan entre dois vetores em Python.

Método 1: escrever uma função personalizada

O código a seguir mostra como criar uma função personalizada para calcular a distância de Manhattan entre dois vetores em 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

A distância de Manhattan entre esses dois vetores é 9 .

Podemos confirmar que isso está correto calculando rapidamente a distância até Manhattan manualmente:

Σ|A i – B i | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .

Método 2: use a função cityblock()

Outra forma de calcular a distância de Manhattan entre dois vetores é usar a função cityblock() do pacote 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

Mais uma vez, a distância de Manhattan entre estes dois vetores é 9 .

Observe que também podemos usar esta função para encontrar a distância de Manhattan entre duas colunas em um DataFrame do 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

Recursos adicionais

Como calcular a distância euclidiana em Python
Como calcular a distância de Hamming em Python
Como calcular a distância de Levenshtein em Python
Como calcular a distância de Mahalanobis em Python

Add a Comment

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