点Aと点Bのユークリッド距離とは、2点を結んだ線分ABの長さのこと
一次元のユークリッド距離は絶対値
|A – B|
二次元だと
√(a1 – b1)^2 + (a2 – b2)^2
うん、こーなるね。
三次元になると、
√(a1 – b1)^2 + (a2 – b2)^2 + (a3 – b3)^2
三平方の定理です。では、これをpythonで計算すると、
import numpy x1 = 3 y1 = 4 x2 = 4 y2 = 6 a = numpy.array([x1, y1]) b = numpy.array([x2, y2]) u = b - a print(numpy.linalg.norm(u))
[vagrant@localhost python]$ python myapp.py
2.23606797749979
なんだこれは。
numpy.linalgは固有値、固有ベクトルの計算
normはノムル
ユークリッド距離は何に使われるかというと
k-nearest neighbor algorithm ※k-nn
パターン認識で使われる。
なるほど、確かに距離の計算をしている、ということはわかる。