Python でユークリッド距離を計算する方法 (例付き)


2 つのベクトル A と B の間のユークリッド距離は次のように計算されます。

ユークリッド距離 = √ Σ(A i -B i ) 2

Python で 2 つのベクトル間のユークリッド距離を計算するには、 numpy.linalg.norm関数を使用できます。

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14, 17, 11, 8])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

12.409673645990857

2 つのベクトル間のユークリッド距離は12.40967であることがわかります。

2 つのベクトルが同じ長さでない場合、この関数は警告メッセージを生成することに注意してください。

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

ValueError : operands could not be broadcast together with shapes (7,) (10,) 

この関数を使用して、pandas DataFrame の 2 つの列間のユークリッド距離を計算することもできることに注意してください。

 #import functions
import pandas as pd 
import numpy as np
from numpy. linalg import norm

#define DataFrame with three columns
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#calculate Euclidean distance between 'points' and 'assists' 
norm(df[' points '] - df[' assists '])

40.496913462633174

2 つの列間のユークリッド距離は40.49691であることがわかります。

コメント

1. Python でユークリッド距離を計算するにはいくつかの方法がありますが、 このスタック オーバーフロー スレッドで説明されているように、ここで説明されている方法が最も速いことがわかります。

2. numpy.linalg.norm関数の完全なドキュメントは、ここで見つけることができます。

3.ユークリッド距離の詳細については、 この Wikipedia ページ参照してください

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です