Hoe de euclidische afstand in python te berekenen (met voorbeelden)
De Euclidische afstand tussen twee vectoren A en B wordt als volgt berekend:
Euclidische afstand = √ Σ(A i -B i ) 2
Om de Euclidische afstand tussen twee vectoren in Python te berekenen, kunnen we de functie numpy.linalg.norm gebruiken:
#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(ab) 12.409673645990857
De Euclidische afstand tussen de twee vectoren blijkt 12,40967 te zijn.
Merk op dat deze functie een waarschuwingsbericht zal produceren als de twee vectoren niet dezelfde lengte hebben:
#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(ab) ValueError : operands could not be broadcast together with shapes (7,) (10,)
Merk op dat we deze functie ook kunnen gebruiken om de Euclidische afstand tussen twee kolommen van een panda’s DataFrame te berekenen:
#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
De Euclidische afstand tussen de twee kolommen blijkt 40,49691 te zijn.
Opmerkingen
1. Er zijn verschillende manieren om de Euclidische afstand in Python te berekenen, maar zoals deze Stack Overflow-thread uitlegt , blijkt de hier uitgelegde methode de snelste te zijn.
2. U kunt de volledige documentatie van de functie numpy.linalg.norm hier vinden.
3. U kunt deze Wikipedia-pagina raadplegen voor meer informatie over de Euclidische afstand.