Come calcolare la distanza di manhattan in python (con esempi)


La distanza Manhattan tra due vettori, A e B , si calcola come segue:

Σ| AiBi |

dove i è l’i- esimo elemento di ciascun vettore.

Questa distanza viene utilizzata per misurare la dissomiglianza tra due vettori ed è comunemente utilizzata in molti algoritmi di apprendimento automatico .

Questo tutorial mostra due modi per calcolare la distanza di Manhattan tra due vettori in Python.

Metodo 1: scrivere una funzione personalizzata

Il codice seguente mostra come creare una funzione personalizzata per calcolare la distanza di Manhattan tra due vettori in 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

La distanza Manhattan tra questi due vettori risulta essere 9 .

Possiamo confermare che ciò è corretto calcolando rapidamente a mano la distanza da Manhattan:

Σ| AiBi | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .

Metodo 2: utilizzare la funzione cityblock()

Un altro modo per calcolare la distanza di Manhattan tra due vettori è utilizzare la funzione cityblock() del pacchetto 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

Ancora una volta, la distanza Manhattan tra questi due vettori risulta essere 9 .

Nota che possiamo anche usare questa funzione per trovare la distanza di Manhattan tra due colonne in un DataFrame panda:

 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

Risorse addizionali

Come calcolare la distanza euclidea in Python
Come calcolare la distanza di Hamming in Python
Come calcolare la distanza di Levenshtein in Python
Come calcolare la distanza di Mahalanobis in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *