Calcule a distância euclidiana em Python

Manav Narula 30 janeiro 2023
  1. Use o módulo NumPy para encontrar a distância euclidiana entre dois pontos
  2. Use a função distance.euclidean() para encontrar a distância euclidiana entre dois pontos
  3. Use a função math.dist() para encontrar a distância euclidiana entre dois pontos
Calcule a distância euclidiana em Python

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.

fórmula da distância euclidiana

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

Artigo relacionado - NumPy Math