2点の座標の距離を求めるならnumpyよりscipyの方が分かりやすい

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 v1.19 Manual
scipy.spatial.distance.euclidean — SciPy v1.5.2 Reference Guide

コメント

タイトルとURLをコピーしました