Calcola la distanza euclidea in Python
- Usa il modulo NumPy per trovare la distanza euclidea tra due punti
-
Usa la funzione
distance.euclidean()
per trovare la distanza euclidea tra due punti -
Usa la funzione
math.dist()
per trovare la distanza euclidea tra due punti
Nel mondo della matematica, la distanza più breve tra due punti in qualsiasi dimensione è chiamata distanza euclidea. È la radice quadrata della somma dei quadrati della differenza tra due punti.
In Python, i moduli numpy e scipy sono molto ben dotati di funzioni per eseguire operazioni matematiche e calcolare questo segmento di linea tra due punti.
In questo tutorial, discuteremo diversi metodi per calcolare la distanza euclidea tra le coordinate.
Usa il modulo NumPy per trovare la distanza euclidea tra due punti
Il modulo numpy può essere utilizzato per trovare la distanza richiesta quando le coordinate sono sotto forma di un array. Ha la funzione norm()
, che può restituire la norma vettoriale di un array. Può aiutare a calcolare la distanza euclidea tra due coordinate, come mostrato di seguito.
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
dist = np.linalg.norm(a - b)
print(dist)
Produzione:
5.196152422706632
Possiamo anche implementare direttamente la formula matematica utilizzando il modulo numpy. Per questo metodo, useremo la funzione numpy.sum()
, che restituisce la somma degli elementi, e la funzione numpy.square()
restituirà il quadrato degli elementi.
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
dist = np.sqrt(np.sum(np.square(a - b)))
print(dist)
Produzione:
5.196152422706632
La funzione numpy.sqrt()
fornisce la radice quadrata del valore.
Un altro modo per implementare la formula della distanza euclidea è usare la funzione dot()
. Possiamo trovare il prodotto scalare della differenza di punti e la sua trasposizione, restituendo la somma dei quadrati.
Per esempio,
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
temp = a - b
dist = np.sqrt(np.dot(temp.T, temp))
print(dist)
Produzione:
5.196152422706632
Usa la funzione distance.euclidean()
per trovare la distanza euclidea tra due punti
Abbiamo discusso diversi metodi per calcolare la distanza euclidea utilizzando il modulo numpy. Tuttavia, questi metodi possono essere un po’ lenti, quindi abbiamo un’alternativa più veloce disponibile.
La libreria scipy ha molte funzioni per il calcolo matematico e scientifico. La funzione distance.euclidean()
restituisce la distanza euclidea tra due punti.
Per esempio,
from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)
print(distance.euclidean(a, b))
Produzione:
5.196152422706632
Usa la funzione math.dist()
per trovare la distanza euclidea tra due punti
In alternativa può essere utilizzato anche il modulo math
. La funzione dist()
di questo modulo può restituire il segmento di linea tra due punti.
Per esempio,
from math import dist
a = (1, 2, 3)
b = (4, 5, 6)
print(dist(a, b))
Produzione:
5.196152422706632
I metodi dei moduli scipy
e math
sono un’alternativa più veloce ai metodi numpy e funzionano quando le coordinate sono sotto forma di una tupla o di una lista.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn