今日は土曜日ですが、飛ばしています! この投稿で使用したもの Python 3 numpy 対話モード さっきふと思いました。 abs() と linalg.norm() って同じことでは? 結論から言うと、 ちょっと違います。 それぞれ使い方などを説明します。 print(abs(-1000)) とすると、 1000 と出力されると思います。 一方、 対話モードで >>>import numpy >>>p0=(1,2) >>>p1=(3,4) >>>numpy.linalg.norm(numpy.array(p0)-p1) 2.8284271247461903 linalg.norm(p0-p1)は、 2点の座標間の距離を表しています。 3次元の座標に変えても、 出力してくれます。 linalg.norm(p0) ですと、 p0の原点からの距離となります。 距離なので、 p1-p0 でも、 p0-p1 でも 同じ答えとなります。 absは絶対値ですので、 定数などのような、 プラスやマイナスの値をプラスにするだけです。 linalg.norm() が、 abs()を含むような イメージ でしょうか? 例を挙げてみます。 linalg.norm() に特殊な場合のp0,p1を与えてみます。 例): >>>p0=(0,0) >>>p1=(0,-1000) >>>int(numpy.linalg.norm(numpy.array(p0)-p1)) 1000 >>>abs(-1000) 1000 >>> 普通はこのような使い方はしないかもしれませんが。 ちなみにPythonでは、タプルどうしの演算は許されていないので、 array()を使用して演算しています。 今日はlinalg.norm()の使い方を考えてみました。 追記: linalg.norm() を絶対値の出力として使えると、今気づきました。 >>>import numpy >>>int(numpy.linalg.norm(-1000)) 1000 イメージを書いてみました。 Microsoft paint で描きまし