Ml-tips

【python】 Numpyで2点間の距離と角度を求める

概要

numpyを使って以下のような2点間の距離と角度を求めていきます。

距離

距離の計算ではnp.linalg.normを使います。

>>> import numpy as np
>>> 
>>> a = np.array([1, 1])
>>> b = np.array([2, 2])
>>> 
>>> np.linalg.norm(a-b)
1.4142135623730951

ひとよひとよにひとみごろ

角度

角度の計算ではnp.arctan2を使います

>>> import numpy as np
>>> 
>>> a = np.array([1, 1])
>>> b = np.array([2, 2])
>>> vec = b - a
>>> 
>>> np.arctan2(vec[0], vec[1])
0.7853981633974483

ちなみに角度は以下の図のように出力されます。範囲は-pi < θ <= piという感じですね。