Python abs() 関数: 絶対値の例

⚡ スマートサマリー

Python abs() は、数値の絶対値、つまり符号なしのゼロからの距離を返す組み込み関数です。整数、浮動小数点数、複素数を受け付け、複素数の場合は絶対値を返します。

  • 🔢 絶対値: abs() は数値の符号を取り除き、ゼロからの距離を返します。したがって、abs(-25) と abs(25) はどちらも 25 を返します。
  • 🧮 数値の種類: 引数は整数、浮動小数点数、または複素数のいずれかであり、戻り値の型は入力値と一致します。
  • 🔟 複素数: (3+10j)のような複素数の場合、abs()関数は絶対値、つまり実部と虚部の二乗の平方根を返します。
  • ???? リスト: abs() は一度に 1 つの数値を処理するため、[abs(n) for n in nums] のような内包表記は、それをすべての要素に適用します。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ abs() と math.fabs() の比較: 組み込み関数の abs() は入力型を保持し、複素数をサポートしますが、math.fabs() は常に float を返し、math モジュールが必要です。
  • 🤖 AI支援: GitHub CopilotなどのAIツールは、短いプロンプトから平均絶対誤差などのタスクを実行するために、abs()関数やNumPyのnp​​.abs()関数の呼び出しを生成します。

Python abs() 関数

Python abs()

Python abs() は標準ライブラリで使用できる組み込み関数です。 Python指定された数値の絶対値を返します。数値の絶対値とは、符号を考慮しない値のことです。数値は整数、浮動小数点数、複素数のいずれかです。指定された数値が複素数の場合は、その絶対値(大きさ)が返されます。

構文

abs() 関数の構文は以下のとおりです。

abs(value)

パラメータ(値)

絶対値を取得するために abs() に渡される入力値。整数、浮動小数点数、または複素数にすることができます。

戻り値

abs() 関数は、指定された数値の絶対値を返します。

  • 入力が整数であれば、戻り値も整数になります。
  • 入力が浮動小数点数の場合、戻り値も浮動小数点数になります。
  • 入力が複素数の場合、戻り値は入力の大きさになります。

以下の例は、abs() 関数を整数、浮動小数点数、複素数に適用した例を示しています。

Code 例1:整数と浮動小数点数

整数と浮動小数点数の絶対値を取得するには、次のコードを確認してください。

# testing abs() for an integer and float
  int_num = -25
  float_num = -10.50
  print("The absolute value of an integer number is:", abs(int_num))
  print("The absolute value of a float number is:", abs(float_num))

出力:

The absolute value of an integer number is: 25
The absolute value of a float number is: 10.5

例2: 複素数

複素数の絶対値を取得するには、次のコードを使用します。

# testing abs() for a complex number
complex_num = (3+10j)
print("The magnitude of the complex number is:", abs(complex_num))

出力:

The magnitude of the complex number is: 10.44030650891055

リストの絶対値を求める方法 Python

abs() 関数は単一の数値に対してのみ機能するため、リスト全体を渡すと TypeError が発生します。リストのすべての項目に適用するには、各要素に対して abs() を呼び出すリスト内包表記を使用します。

numbers = [12, 30, -33, -22, 77, -100]
abs_numbers = [abs(num) for num in numbers]
print(abs_numbers)

出力:

[12, 30, 33, 22, 77, 100]

この内包表記は元の順序を保持し、正の値の新しいリストを返します。組み込みの map() 関数を使用しても同じ結果が得られます。例: list(map(abs, numbers))これは、明示的なループを書かずに各要素にabs()を適用します。

  • 値をフィルタリングしたり変換したりしたい場合は、リスト内包表記を使用してください。
  • map() を使用すると、abs() を直接適用する、短く読みやすい呼び出しが可能になります。
  • 大規模な数値データセットの場合、np.abs() を使用した NumPy 配列は、 Python ループ。

Python abs() と math.fabs() の比較

Python 絶対値を取得するには、組み込み関数のabs()とmathモジュールのfabs()関数の2つの方法があります。これらは見た目は似ていますが、動作が異なります。

import math

print(abs(-7))          # 7 (int is unchanged)
print(math.fabs(-7))    # 7.0 (float result)

出力:

7
7.0

これら2つの機能の主な違いは以下のとおりです。

  • 戻り値の型: abs() は入力型を保持し、整数に対しては整数を返しますが、math.fabs() は常に浮動小数点数を返します。
  • インポート: abs() は常に利用可能ですが、math.fabs() は import math.
  • 複素数: abs() は複素数の絶対値を返しますが、math.fabs() は複素数の入力に対して TypeError を発生させます。

の実用的応用 Python abs() 関数

符号情報を無視するため、abs() 関数は値の大きさだけが重要で、方向が重要でない場合に便利です。よくある例としては、2 つの測定値の差を求める場合が挙げられます。

temp_morning = 12
temp_night = -5
print("Temperature change:", abs(temp_morning - temp_night))

出力:

Temperature change: 17

絶対値の日常的な使用例としては、以下のようなものがあります。

  • 距離と差異: 2つの点、温度、またはタイムスタンプ間の差を測定し、どちらの値が大きいかを判断します。
  • エラー指標: 予測値と実際値の間の絶対誤差を計算する。
  • 許容範囲チェック: 結果が目標に十分近いかどうかをテストする、例えば abs(actual - expected) < 0.01.
  • ファイナンス: 利得または損失の規模を符号なしで報告すること。

以下のような round() 関数、abs() は、モジュールをインポートせずに直接呼び出すことができる組み込み関数です。

よくあるご質問

いいえ。abs() は新しい値を返し、引数を変更することはありません。なぜなら、数値は Python は不変です。結果を保持するには、例えば positive = abs(number) のように変数に代入します。元の変数には、符号付きの値がそのまま保持されます。

いいえ。文字列を渡すと、TypeError: bad operand type for abs(): 'str' というエラーが発生します。abs() 関数は整数、浮動小数点数、または複素数のみを受け入れるためです。文字列を測定するには、代わりに len() 関数を使用してください。len() 関数は文字列に含まれる文字数を返します。

手動で計算することもできます。値 x に対して、max(x, -x) は絶対値を返し、(x ** 2) ** 0.5 も実数に対して有効です。ただし、組み込み関数 abs() の方が分かりやすく、高速で、複素数も扱えます。

いいえ。縦棒表記 |x| は数学的なものであり、 Python 構文; Python 記号「|」はビットごとのOR演算子です。絶対値を取得するには、組み込み関数abs()を呼び出す必要があります。例えば、abs(-8)と入力すると、8が返されます。

__abs__ は、abs() が内部で呼び出すダダメソッドです。abs(obj) と書くと、 Python obj.__abs__() を実行します。独自のクラスで __abs__ を定義すると、abs() はベクトルや通貨型などのカスタムオブジェクトに対しても機能するようになります。

ループ処理の代わりにベクトル化されたバージョンを使用してください。NumPy の np.abs(array) は、すべての要素が正の値になった新しい配列を返します。また、pandas Series は Series.abs() を公開しています。どちらもすべての要素に絶対値を一度に適用するため、大規模なデータセットでは高速です。

abs() は、誤差と距離の指標の基盤となります。平均絶対誤差 (MAE) と L1 損失は、予測値と目標値の絶対差を合計し、絶対値は勾配の大きさを測定します。配列全体に対しては、NumPy の np.abs() はすべての要素に同じ操作を効率的に適用します。

GitHub Copilotは、短いコメントからabs()関数の呼び出し、[abs(n) for n in nums]のようなリスト内包表記、NumPyのnp​​.abs()といったコード行を直接提案します。また、平均絶対誤差関数を自動生成することもできるため、定型コードを記述する代わりにロジックを確認できます。