2017年11月23日木曜日

N次元の複数点間の距離を一括で計算 (その2)

N次元の複数点間の距離を一括で計算の計算は冗長でした。 np.tileを使う必要がありません。コードは以下のようになります。

# Make 3 points in 2D (embedded into 1x3 matrix)
p1 = np.array([[[1,2],[3,4],[5,6]]])

# Make 5 points in 2D (embedded into 5x1 matrix)
p2 = np.array([[[0,1],[1,2],[2,3],[1,1],[2,2]]]).reshape(5,1,-1)

print(np.sqrt(np.sum((p1 - p2)**2, axis=2)))
結果は、
[[ 1.41421356  4.24264069  7.07106781]
 [ 0.          2.82842712  5.65685425]
 [ 1.41421356  1.41421356  4.24264069]
 [ 1.          3.60555128  6.40312424]
 [ 1.          2.23606798  5.        ]]
となります。

0 件のコメント :