Python でユークリッド距離を計算する
- NumPy モジュールを使用して、2 点間のユークリッド距離を見つける
-
2 点間のユークリッド距離を求めるために
distance.euclidean()
関数を使う -
math.dist()
関数を使用して、2 点間のユークリッド距離を見つける
数学の世界では、任意の次元の 2 点間の最短距離はユークリッド距離と呼ばれます。これは、2 点間の差の 2 乗和の平方根です。
Python では、numpy、scipy モジュールには、数学演算を実行し、2 点間のこの線分を計算する関数が非常によく装備されています。
このチュートリアルでは、座標間のユークリッド距離を計算するさまざまな方法について説明します。
NumPy モジュールを使用して、2 点間のユークリッド距離を見つける
座標が配列の形式である場合、numpy モジュールを使用して必要な距離を見つけることができます。配列のベクトルノルムを返すことができる norm()
関数があります。以下に示すように、2つの座標間のユークリッド距離を計算するのに役立ちます。
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))
dist = np.linalg.norm(a - b)
print(dist)
出力:
5.196152422706632
numpy モジュールを使用して数式を直接実装することもできます。このメソッドでは、要素の合計を返す numpy.sum()
関数を使用し、numpy.square()
関数は要素の 2 乗を返します。
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)
出力:
5.196152422706632
numpy.sqrt()
関数は、値の平方根を提供します。
ユークリッド距離の式を実装する別の方法は、dot()
関数を使用することです。点の差とその転置の内積を見つけて、二乗和を返します。
例えば、
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)
出力:
5.196152422706632
2 点間のユークリッド距離を求めるために distance.euclidean()
関数を使う
numpy モジュールを使用してユークリッド距離を計算するさまざまな方法について説明しました。ただし、これらの方法は少し遅くなる可能性があるため、より高速な代替方法を利用できます。
scipy ライブラリには、数学的および科学的な計算のための多くの機能があります。distance.euclidean()
関数は、2 点間のユークリッド距離を返します。
例えば、
from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)
print(distance.euclidean(a, b))
出力:
5.196152422706632
math.dist()
関数を使用して、2 点間のユークリッド距離を見つける
math
モジュールも代替として使用できます。このモジュールの dist()
関数は、2 点間の線分を返すことができます。
例えば、
from math import dist
a = (1, 2, 3)
b = (4, 5, 6)
print(dist(a, b))
出力:
5.196152422706632
scipy
および math
モジュールメソッドは、numpy メソッドのより高速な代替手段であり、座標がタプルまたはリストの形式である場合に機能します。
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