2点間距離を求めるプログラムを調べると、numpyのノルムを求める関数を利用したものが多い。
例えば
import numpy as np x = np.array([1, 2]) y = np.array([3, 4]) answer = np.linalg.norm(x-y)
みたいな解説が多い。
やっていることは理解できるのだが、ひと目見て「2点間距離を求めているな」というのがわかりにくい。
from scipy.spatial import distance x = (1, 2) y = (3, 4) answer = distance.euclidean(x, y)
scipyならユークリッド距離を求めている、という処理が見ただけでわかる。
読みやすく、保守性が高いコードになる。
参考
numpy.linalg.norm — NumPy v2.1 Manual
euclidean — SciPy v1.14.1 Manual
コメント