Calcule a distância euclidiana em Python
- Use o módulo NumPy para encontrar a distância euclidiana entre dois pontos
-
Use a função
distance.euclidean()
para encontrar a distância euclidiana entre dois pontos -
Use a função
math.dist()
para encontrar a distância euclidiana entre dois pontos
No mundo da matemática, a distância mais curta entre dois pontos em qualquer dimensão é chamada de distância euclidiana. É a raiz quadrada da soma dos quadrados da diferença entre dois pontos.
Em Python, os módulos numpy e scipy são muito bem equipados com funções para realizar operações matemáticas e calcular esse segmento de linha entre dois pontos.
Neste tutorial, discutiremos diferentes métodos para calcular a distância euclidiana entre as coordenadas.
Use o módulo NumPy para encontrar a distância euclidiana entre dois pontos
O módulo numpy pode ser usado para encontrar a distância necessária quando as coordenadas estão na forma de um array. Possui a função norm()
, que pode retornar a norma vetorial de um array. Pode ajudar no cálculo da distância euclidiana entre duas coordenadas, conforme mostrado a seguir.
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
dist = np.linalg.norm(a - b)
print(dist)
Resultado:
5.196152422706632
Também podemos implementar diretamente a fórmula matemática usando o módulo numpy. Para este método, usaremos a função numpy.sum()
, que retorna a soma dos elementos, e a função numpy.square()
retornará o quadrado dos 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)
Resultado:
5.196152422706632
A função numpy.sqrt()
fornece a raiz quadrada do valor.
Outra forma de implementar a fórmula da distância euclidiana é usar a função dot()
. Podemos encontrar o produto escalar da diferença de pontos e sua transposição, retornando a soma dos quadrados.
Por exemplo,
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)
Resultado:
5.196152422706632
Use a função distance.euclidean()
para encontrar a distância euclidiana entre dois pontos
Discutimos diferentes métodos para calcular a distância euclidiana usando o módulo numpy. No entanto, esses métodos podem ser um pouco lentos, então temos uma alternativa mais rápida disponível.
A biblioteca scipy tem muitas funções para cálculos matemáticos e científicos. A função distance.euclidean()
retorna a distância euclidiana entre dois pontos.
Por exemplo,
from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)
print(distance.euclidean(a, b))
Resultado:
5.196152422706632
Use a função math.dist()
para encontrar a distância euclidiana entre dois pontos
O módulo math
também pode ser usado como alternativa. A função dist()
deste módulo pode retornar o segmento de linha entre dois pontos.
Por exemplo,
from math import dist
a = (1, 2, 3)
b = (4, 5, 6)
print(dist(a, b))
Resultado:
5.196152422706632
Os métodos dos módulos scipy
e math
são uma alternativa mais rápida aos métodos numpy e funcionam quando as coordenadas estão na forma de uma tupla ou 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