【python】numpyで二点間距離を一発算出!np.linalg.normの使い方

この記事では、pythonで2つの点の距離を一発算出する方法をご紹介していきます。

数学的に言うユークリッド距離ってやつですね。

 

2点間距離を計測する場合、いわゆる三平方の定理を使って計算しますよね。

その定理を再現するコードを書いてもOKですが、この記事で紹介する内容を使えば、そんなものは一行で記述できます。

 

実務でもときどき出くわす内容ですので、ぜひやり方を覚えておきましょう。

 

それではさっそくやっていいましょう。

スポンサーリンク

numpyで2点間距離を計測する方法

いきなりですが、以下が二点間の距離を計測する方法です。

距離=np.linalg.norm(a-b)
※a:1点目の変数、b:2点目の変数

 

変数a,bの次元は共通であれば何次元でもOKです。

 

以降、2次元、3次元配列にてこれを適用した際のサンプルコードをご紹介します。

 

スポンサーリンク

2次元配列間の距離を計測するサンプルコード

それでは実際の使用例を紹介していきます。

まずは2次元配列に対して適用してみましょう。

 

今回は(x,y)が

a=(1,2)

b=(2,3)

という二点間の距離を計測してみます。

 

三平方の定理を使って計算すると答えは√2(1.41421356…)になるはずですね。

それではnp.linalg.normを使って検証してみましょう。

 

以下がそのサンプルコードです。

import numpy as np
a=np.array([1,2])
b=np.array([2,3])
distance=np.linalg.norm(b-a)
print(distance)

※np.linalg.normの中はa-bにしても問題ありません。

 

こいつを実行すると以下の結果が出力されました。

2次元配列間の距離を算出した結果

問題なく√2である1.41421356…が出力されてますね。

 

スポンサーリンク

3次元配列間の距離を計測するサンプルコード

次は先ほどのコードを3次元配列に変更してみましょう。

 

今回は(x,y,z)が

a=(1,2,3)

b=(2,3,4)

という二点間の距離を計測してみます。

 

これも三平方の定理を使って計算すると、答えは√3(1.7320508…)になるはずですね。

np.linalg.normを使って検証してみましょう。

以下がそのサンプルコードです。

import numpy as np
a=np.array([1,2,3])
b=np.array([2,3,4])
distance=np.linalg.norm(b-a)
print(distance)

※np.linalg.normの中はa-bにしても問題ありません。

 

こいつを実行すると以下の結果が出力されました。

3次元配列間の距離を算出した結果

問題なく√3である1.7320508…が出力されてますね。

 

スポンサーリンク

おわりに

というわけで今回はpythonで2点間距離を計測する方法をご紹介しました。

今回は3次元までしか紹介していませんが、基本的には4次元、5次元と拡張していくことも可能です。

ぜひコードを書き換えて実行してみましょう。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

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