Hoe manhattan-afstand in python te berekenen (met voorbeelden)


De Manhattan-afstand tussen twee vectoren, A en B , wordt als volgt berekend:

Σ|A ik – B ik |

waarbij i het i -de element van elke vector is.

Deze afstand wordt gebruikt om de ongelijkheid tussen twee vectoren te meten en wordt vaak gebruikt in veel machine learning-algoritmen .

Deze tutorial laat twee manieren zien om de Manhattan-afstand tussen twee vectoren in Python te berekenen.

Methode 1: Schrijf een aangepaste functie

De volgende code laat zien hoe u een aangepaste functie maakt om de Manhattan-afstand tussen twee vectoren in Python te berekenen:

 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

De Manhattan-afstand tussen deze twee vectoren blijkt 9 te zijn.

We kunnen bevestigen dat dit klopt door de afstand naar Manhattan snel met de hand te berekenen:

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

Methode 2: gebruik de functie cityblock().

Een andere manier om de Manhattan-afstand tussen twee vectoren te berekenen is door de functie cityblock() uit het SciPy-pakket te gebruiken:

 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

Opnieuw blijkt de Manhattan-afstand tussen deze twee vectoren 9 te zijn.

Merk op dat we deze functie ook kunnen gebruiken om de Manhattan-afstand tussen twee kolommen in een Panda DataFrame te vinden:

 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

Aanvullende bronnen

Hoe de Euclidische afstand in Python te berekenen
Hoe Hamming-afstand in Python te berekenen
Hoe de Levenshtein-afstand in Python te berekenen
Hoe Mahalanobis-afstand in Python te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert