本記事では、Pythonで絶対値を計算するためのabs関数について詳しく解説します。Pythonのabs関数は数値の絶対値を簡単に求められる便利な組み込み関数です。整数、浮動小数点数、複素数など様々な数値型に対応しており、データ処理や数値計算において頻繁に使用されます。この記事では、Pythonでの絶対値計算の基本的な使い方から応用例、実践的なコードサンプルまでを網羅的に紹介します。
絶対値とは
絶対値とは、数値の符号(プラスやマイナス)を除いた値のことです。数学では|x|と表記します。
正の数の絶対値はその数自身、負の数の絶対値はマイナスを取り除いた値になります。例えば、5の絶対値は5、-5の絶対値も5です。
複素数の場合は、複素平面上での原点からの距離として定義されます。複素数 a + bi の絶対値は √(a² + b²) です。
Pythonでは、abs関数を使って簡単に絶対値を求めることができます。
整数(int)の絶対値
負の整数を渡すと、その正の値が返されます。
print(abs(-10)) # 出力: 10
print(abs(10)) # 出力: 10
浮動小数点数(float)の絶対値
浮動小数点数でも同様に、絶対値が返されます。
print(abs(-3.14)) # 出力: 3.14
print(abs(2.718)) # 出力: 2.718
複素数(complex)の絶対値
複素数の場合は、数値の大きさ(原点からの距離)が返されます。これは、複素数の絶対値(ノルム)を計算した結果です。
計算式: √(実部^2 + 虚部^2)
z = 3 + 4j
print(abs(z)) # 出力: 5.0 (計算: √(3^2 + 4^2) = 5)
注意点
非数値型はエラーになる
数値型以外の引数を渡すとエラーになります。
print(abs("text")) # エラー: TypeError: bad operand type for abs(): 'str'
引数の型に応じた戻り値の型
abs関数は引数の型に応じて異なる型の戻り値を返します。type関数を使って確認してみましょう。
# 整数の場合
result_int = abs(-10)
print(result_int) # 出力: 10
print(type(result_int)) # 出力: <class 'int'>
# 浮動小数点数の場合
result_float = abs(-3.14)
print(result_float) # 出力: 3.14
print(type(result_float)) # 出力: <class 'float'>
# 複素数の場合
z = 3 + 4j
result_complex = abs(z)
print(result_complex) # 出力: 5.0
print(type(result_complex)) # 出力: <class 'float'>
複素数ではノルムを返す
複素数を渡した場合は、そのノルム(絶対値)が浮動小数点数で返されます。
z = 3 + 4j
print(abs(z)) # 出力: 5.0 (float型)
応用例
数列の要素を絶対値でソート
リスト内の要素を絶対値でソートする場合に使います。
numbers = [-10, 3, -2, 7, -5]
sorted_numbers = sorted(numbers, key=abs)
print(sorted_numbers) # 出力: [-2, 3, -5, 7, -10]
複素数の大小比較
複素数の大きさを比較する際に、abs()を利用します。
z1 = 3 + 4j
z2 = 1 + 1j
if abs(z1) > abs(z2):
print("z1 is larger")
else:
print("z2 is larger")
# 出力: z1 is larger
まとめ
abs関数はPythonで非常にシンプルかつ便利な組み込み関数であり、以下のような場面で活躍します。
- 整数や浮動小数点数の絶対値を求める
- 複素数の大きさを計算する
- データのソートや大小比較などの場面で利用
Pythonの数値型を柔軟に扱う上で覚えておきたい基本関数のひとつです。