abs()とlinalg.norm()の使い方など
今日は土曜日ですが、飛ばしています!
この投稿で使用したもの
- 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 で描きました。
つらつらと書いていますが、間違っていたらすみません。(^_^;)
追記2:
|p0p1| = |p1 - p0|
|p1p0| = |p0 - p1|
IBM ウェブアートデザイナー で描きました。
高等学校の数学の知識が必要です。END
コメント
コメントを投稿