Euklidischen Abstand berechnen in Python

Manav Narula 30 Januar 2023 9 Mai 2021 NumPy NumPy Math
  1. Verwendung des NumPy-Moduls zur Ermittlung des euklidischen Abstands zwischen zwei Punkten
  2. Verwendung der Funktion distance.euclidean() zur Ermittlung des euklidischen Abstands zwischen zwei Punkten
  3. Verwendung der Funktion math.dist() zur Ermittlung des euklidischen Abstands zwischen zwei Punkten
Euklidischen Abstand berechnen in Python

In der Welt der Mathematik wird der kürzeste Abstand zwischen zwei Punkten in einer Dimension als euklidischer Abstand bezeichnet. Es ist die Quadratwurzel der Summe der Quadrate der Differenz zwischen zwei Punkten.

euklidische Distanzformel

In Python sind die numpy-scipy-Module sehr gut mit Funktionen ausgestattet, mit denen mathematische Operationen ausgeführt und dieses Liniensegment zwischen zwei Punkten berechnet werden können.

In diesem Tutorial werden wir verschiedene Methoden zur Berechnung des euklidischen Abstands zwischen Koordinaten diskutieren.

Verwendung des NumPy-Moduls zur Ermittlung des euklidischen Abstands zwischen zwei Punkten

Das NumPy-Modul kann verwendet werden, um den erforderlichen Abstand zu ermitteln, wenn die Koordinaten in Form eines Arrays vorliegen. Es hat die Funktion norm(), die die Vektornorm eines Arrays zurückgeben kann. Dies kann bei der Berechnung des euklidischen Abstands zwischen zwei Koordinaten hilfreich sein, wie unten gezeigt.

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

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

print(dist)

Ausgabe:

5.196152422706632

Wir können die mathematische Formel auch direkt mit dem NumPy-Modul implementieren. Für diese Methode verwenden wir die Funktion numpy.sum(), die die Summe der Elemente zurückgibt, und die Funktion numpy.square() gibt das Quadrat der Elemente zurück.

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)

Ausgabe:

5.196152422706632

Die Funktion numpy.sqrt() liefert die Quadratwurzel des Wertes.

Eine andere Möglichkeit, die euklidische Distanzformel zu implementieren, ist die Verwendung der Funktion dot(). Wir können das Punktprodukt der Differenz der Punkte und ihrer Transponierung finden und die Summe der Quadrate zurückgeben.

Beispielsweise,

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)

Ausgabe:

5.196152422706632

Verwendung der Funktion distance.euclidean() zur Ermittlung des euklidischen Abstands zwischen zwei Punkten

Wir haben verschiedene Methoden zur Berechnung der euklidischen Entfernung mit dem NumPy-Modul diskutiert. Diese Methoden können jedoch etwas langsam sein, sodass wir eine schnellere Alternative zur Verfügung haben.

Die Scipy-Bibliothek hat viele Funktionen für mathematische und wissenschaftliche Berechnungen. Die Funktion distance.euclidean() gibt den euklidischen Abstand zwischen zwei Punkten zurück.

Beispielsweise,

from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)

print(distance.euclidean(a, b))

Ausgabe:

5.196152422706632

Verwendung der Funktion math.dist() zur Ermittlung des euklidischen Abstands zwischen zwei Punkten

Alternativ kann auch das Modul Mathematik verwendet werden. Die Funktion dist() dieses Moduls kann das Liniensegment zwischen zwei Punkten zurückgeben.

Beispielsweise,

from math import dist

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

print(dist(a,b))

Ausgabe:

5.196152422706632

Die Methoden des scipy- und math-Moduls sind eine schnellere Alternative zu den numpy-Methoden und funktionieren, wenn die Koordinaten in Form eines Tupels oder einer Liste vorliegen.

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

Verwandter Artikel - NumPy Math

  • Elementweise Division in Python NumPy