Calcular la distancia euclidiana en Python
- Utilice el módulo NumPy para encontrar la distancia euclidiana entre dos puntos
-
Utilice la función
distance.euclidean()
para encontrar la distancia euclidiana entre dos puntos -
Utilice la función
math.dist()
para encontrar la distancia euclidiana entre dos puntos
En el mundo de las matemáticas, la distancia más corta entre dos puntos en cualquier dimensión se denomina distancia euclidiana. Es la raíz cuadrada de la suma de cuadrados de la diferencia entre dos puntos.
En Python, los módulos numpy, scipy están muy bien equipados con funciones para realizar operaciones matemáticas y calcular este segmento de línea entre dos puntos.
En este tutorial, discutiremos diferentes métodos para calcular la distancia euclidiana entre coordenadas.
Utilice el módulo NumPy para encontrar la distancia euclidiana entre dos puntos
El módulo numpy se puede utilizar para encontrar la distancia requerida cuando las coordenadas están en forma de array. Tiene la función norm()
, que puede devolver la norma vectorial de un array. Puede ayudar a calcular la distancia euclidiana entre dos coordenadas, como se muestra a continuación.
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
dist = np.linalg.norm(a - b)
print(dist)
Producción :
5.196152422706632
También podemos implementar directamente la fórmula matemática usando el módulo numpy. Para este método, usaremos la función numpy.sum()
, que devuelve la suma de elementos, y la función numpy.square()
devolverá el cuadrado de los elementos.
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)
Producción :
5.196152422706632
La función numpy.sqrt()
proporciona la raíz cuadrada del valor.
Otra forma de implementar la fórmula de la distancia euclidiana es usando la función dot()
. Podemos encontrar el producto escalar de la diferencia de puntos y su transposición, devolviendo la suma de cuadrados.
Por ejemplo,
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)
Producción :
5.196152422706632
Utilice la función distance.euclidean()
para encontrar la distancia euclidiana entre dos puntos
Discutimos diferentes métodos para calcular la distancia euclidiana usando el módulo numpy. Sin embargo, estos métodos pueden ser un poco lentos, por lo que tenemos una alternativa más rápida disponible.
La biblioteca scipy tiene muchas funciones para el cálculo matemático y científico. La función distance.euclidean()
devuelve la distancia euclidiana entre dos puntos.
Por ejemplo,
from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)
print(distance.euclidean(a, b))
Producción :
5.196152422706632
Utilice la función math.dist()
para encontrar la distancia euclidiana entre dos puntos
El módulo math
también se puede utilizar como alternativa. La función dist()
de este módulo puede devolver el segmento de línea entre dos puntos.
Por ejemplo,
from math import dist
a = (1, 2, 3)
b = (4, 5, 6)
print(dist(a, b))
Producción :
5.196152422706632
Los métodos del módulo scipy
y math
son una alternativa más rápida a los métodos numpy y funcionan cuando las coordenadas están en forma de tupla o 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