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.