Calcular la distancia euclidiana en Python

Manav Narula 30 enero 2023
  1. Utilice el módulo NumPy para encontrar la distancia euclidiana entre dos puntos
  2. Utilice la función distance.euclidean() para encontrar la distancia euclidiana entre dos puntos
  3. Utilice la función math.dist() para encontrar la distancia euclidiana entre dos puntos
Calcular la distancia euclidiana en Python

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.

fórmula de la distancia euclidiana

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 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

Artículo relacionado - NumPy Math