Comment calculer la distance euclidienne en Python (avec exemples)



La distance euclidienne entre deux vecteurs A et B est calculée comme suit :

Distance euclidienne = √ Σ(A i -B i ) 2

Pour calculer la distance euclidienne entre deux vecteurs en Python, on peut utiliser la fonction numpy.linalg.norm :

#import functions
import numpy as np
from numpy.linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14, 17, 11, 8])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(a-b)

12.409673645990857

La distance euclidienne entre les deux vecteurs s’avère être 12,40967 .

Notez que cette fonction produira un message d’avertissement si les deux vecteurs ne sont pas de même longueur :

#import functions
import numpy as np
from numpy.linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(a-b)

ValueError: operands could not be broadcast together with shapes (7,) (10,) 

Notez qu’on peut également utiliser cette fonction pour calculer la distance euclidienne entre deux colonnes d’un DataFrame pandas :

#import functions
import pandas as pd 
import numpy as np
from numpy.linalg import norm

#define DataFrame with three columns
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#calculate Euclidean distance between 'points' and 'assists' 
norm(df['points'] - df['assists'])

40.496913462633174

La distance euclidienne entre les deux colonnes s’avère être 40,49691 .

Remarques

1. Il existe plusieurs façons de calculer la distance euclidienne en Python, mais comme l’explique ce fil de discussion Stack Overflow , la méthode expliquée ici s’avère être la plus rapide.

2. Vous pouvez trouver la documentation complète de la fonction numpy.linalg.norm ici .

3. Vous pouvez vous référer à cette page Wikipédia pour en savoir plus sur la distance euclidienne.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *