この記事では、Pythonで絶対値を取得する方法を紹介します。
絶対値とは 0 からの距離を表す値 です。「+」や「-」などの符号(向き)が異なっていても同じ距離を示します。つまりは、向きを無視して大きさのみを表す値です。
例えば、2 と -2 は、0 からの距離が 2 なのでどちらも絶対値は 2 となります。
それでは、絶対値を取得する方法を見ていきましょう!
絶対値を取得する方法
絶対値を求めるには、組み込み関数である abs関数 を使います。
abs(x)
また、mathモジュールの fabs関数 を使うことでも絶対値を取得することができます。
import math math.fabs(x)
これらの関数は、引数xに指定した値の絶対値を返します。
print(abs(-1)) print(abs(-2.2)) from math import fabs print(fabs(-1)) print(fabs(-2.2))
実行結果
1 2.2 1.0 2.2
abs関数はint型が指定された場合、int型で結果を返すのに対して math.fabs関数は、必ずfloat型で結果を返します。
また、abs関数では複素数の絶対値を求めれるのに対し、math.fabs関数では求めることができません。複素数の絶対値については後述します。
リストの絶対値
リストやタプルに格納されている要素をまとめて絶対値にしたい場合は、numpyのabsolute関数を使います。 戻り値は numpy.ndarray となります。
import numpy as np l = [-1, -2, -3] print(np.absolute(l)) t = (-4, -5, -6) print(np.absolute(t))
実行結果
[1 2 3] [4 5 6]
また、absolute関数はabs関数と略して使用可能です。
import numpy as np l = [-1, -2, -3] print(np.abs(l)) t = (-4, -5, -6) print(np.abs(t))
複素数の絶対値
abs関数に複素数を指定するとmagnitudeが返される。
magnitudeは、a + bjのとき
となります。
c = 1 + 2j print(abs(c))
実行結果
2.23606797749979
Link絶対値 - Wikipedia
オブジェクトの絶対値
abs関数はオブジェクトに定義されている__abs__メソッドの結果を返します。
つまり、ユーザー定義クラスに__abs__メソッドを実装することで任意の絶対値を返すクラスを定義できるということです。
class MyAbs: def __abs__(self): return '絶対値' ma = MyAbs() print(abs(ma))
実行結果
絶対値
__abs__メソッドで定義した値を絶対値として受け取ることができました。
絶対値を求める関数
自分で絶対値を求める関数を実装することもできます。基本的に組み込み関数の方が高速なので単純に絶対値を求める場合には特に有用性はありません。
絶対値を求めるには、受け取った数値を二乗した後に平方根を求めることで符号が付いていない数値を受け取ることができます。
from math import sqrt # 平方根を求める関数 def abs_func(x): return sqrt(x ** 2) print(abs_func(-3)) print(abs_func(-0.6))
実行結果
3.0 0.6
簡単に絶対値を求めることができました。
まとめ
この記事では、Python で絶対値を取得する方法を解説しました。
値の向きを考慮せず使用したい場合は絶対値を使いましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


