Jak obliczyć odległość manhattanu w pythonie (z przykładami)


Odległość Manhattanu pomiędzy dwoma wektorami A i B oblicza się w następujący sposób:

Σ|A i – B i |

gdzie i jest i- tym elementem każdego wektora.

Odległość ta służy do pomiaru odmienności między dwoma wektorami i jest powszechnie stosowana w wielu algorytmach uczenia maszynowego .

W tym samouczku pokazano dwa sposoby obliczania odległości Manhattanu między dwoma wektorami w Pythonie.

Metoda 1: Napisz funkcję niestandardową

Poniższy kod pokazuje, jak utworzyć niestandardową funkcję obliczającą odległość Manhattan między dwoma wektorami w Pythonie:

 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

Okazuje się, że odległość Manhattanu między tymi dwoma wektorami wynosi 9 .

Możemy potwierdzić, że jest to prawidłowe, szybko obliczając ręcznie odległość do Manhattanu:

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

Metoda 2: użyj funkcji cityblock().

Innym sposobem obliczenia odległości Manhattanu pomiędzy dwoma wektorami jest użycie funkcji cityblock() z pakietu 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

Po raz kolejny okazuje się, że odległość Manhattanu między tymi dwoma wektorami wynosi 9 .

Zauważ, że możemy również użyć tej funkcji, aby znaleźć odległość Manhattan między dwiema kolumnami w ramce DataFrame pandy:

 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

Dodatkowe zasoby

Jak obliczyć odległość euklidesową w Pythonie
Jak obliczyć odległość Hamminga w Pythonie
Jak obliczyć odległość Levenshteina w Pythonie
Jak obliczyć odległość Mahalanobisa w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *