Calculer la distance euclidienne en Python

Manav Narula 30 janvier 2023
  1. Utilisez le module NumPy pour trouver la distance euclidienne entre deux points
  2. Utilisez la fonction distance.euclidean() pour trouver la distance euclidienne entre deux points
  3. Utilisez la fonction math.dist() pour trouver la distance euclidienne entre deux points
Calculer la distance euclidienne en Python

Dans le monde des mathématiques, la distance la plus courte entre deux points dans n’importe quelle dimension est appelée la distance euclidienne. C’est la racine carrée de la somme des carrés de la différence entre deux points.

formule de distance euclidienne

En Python, les modules numpy, scipy sont très bien équipés de fonctions pour effectuer des opérations mathématiques et calculer ce segment de ligne entre deux points.

Dans ce didacticiel, nous aborderons différentes méthodes pour calculer la distance euclidienne entre les coordonnées.

Utilisez le module NumPy pour trouver la distance euclidienne entre deux points

Le module numpy peut être utilisé pour trouver la distance requise lorsque les coordonnées sont sous la forme d’un tableau. Il a la fonction norm(), qui peut renvoyer la norme vectorielle d’un tableau. Cela peut aider à calculer la distance euclidienne entre deux coordonnées, comme indiqué ci-dessous.

import numpy as np

a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.linalg.norm(a - b)

print(dist)

Production:

5.196152422706632

Nous pouvons également implémenter directement la formule mathématique en utilisant le module numpy. Pour cette méthode, nous utiliserons la fonction numpy.sum(), qui retourne la somme des éléments, et la fonction numpy.square() retournera le carré des éléments.

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)

Production:

5.196152422706632

La fonction numpy.sqrt() fournit la racine carrée de la valeur.

Une autre manière d’implémenter la formule de distance euclidienne consiste à utiliser la fonction dot(). On peut trouver le produit scalaire de la différence de points et sa transposition, retournant la somme des carrés.

Par example,

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)

Production:

5.196152422706632

Utilisez la fonction distance.euclidean() pour trouver la distance euclidienne entre deux points

Nous avons discuté de différentes méthodes pour calculer la distance euclidienne à l’aide du module numpy. Cependant, ces méthodes peuvent être un peu lentes, nous avons donc une alternative plus rapide disponible.

La bibliothèque scipy a de nombreuses fonctions pour le calcul mathématique et scientifique. La fonction distance.euclidean() renvoie la distance euclidienne entre deux points.

Par example,

from scipy.spatial import distance

a = (1, 2, 3)
b = (4, 5, 6)

print(distance.euclidean(a, b))

Production:

5.196152422706632

Utilisez la fonction math.dist() pour trouver la distance euclidienne entre deux points

Le module math peut également être utilisé comme alternative. La fonction dist() de ce module peut renvoyer le segment de ligne entre deux points.

Par example,

from math import dist

a = (1, 2, 3)
b = (4, 5, 6)

print(dist(a, b))

Production:

5.196152422706632

Les méthodes des modules scipy et math sont une alternative plus rapide aux méthodes numpy et fonctionnent lorsque les coordonnées sont sous la forme d’un tuple ou d’une liste.

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

Article connexe - NumPy Math