Calcola la distanza euclidea in Python

Manav Narula 30 gennaio 2023
  1. Usa il modulo NumPy per trovare la distanza euclidea tra due punti
  2. Usa la funzione distance.euclidean() per trovare la distanza euclidea tra due punti
  3. Usa la funzione math.dist() per trovare la distanza euclidea tra due punti
Calcola la distanza euclidea in Python

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.

formula della distanza euclidea

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.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

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

Articolo correlato - NumPy Math