Pythonで絶対値を求めるabsとfabsを実例付きで徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年6月)

✔このような方へ向けて書かれた記事となります

「Pythonで絶対値を計算する方法って何だろう?」

「Pythonで絶対値を簡単に求めるコードが知りたい」

「Python絶対値関数の使い方や実例が見たい」

✔当記事を通じてお伝えすること

  • Pythonにおける絶対値計算の基本
  • Python絶対値関数の書き方やその応用
  • Python絶対値関数の実例

当記事では、Pythonにおける絶対値計算の基本から、その関数の使い方や応用まで、具体例を交えて詳しく解説しています。

最後までぜひお読みください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

絶対値とは

こちらでは、「絶対値」の基本的な概念とその活用シーンについてご説明します。

  • 絶対値の基本概念
  • 絶対値の活用シーン

絶対値の基本概念

絶対値とは、数値の大きさのみを示す概念です。

例えば、5と-5の絶対値は共に5です。

絶対値を、数直線上での原点からの距離と考えるとわかりやすいでしょう。

Pythonでは、組み込み関数abs()やmathモジュールのmath.fabs()関数を用いて計算します。

絶対値の活用シーン

絶対値は数学や物理学だけでなく、さまざまな分野で広く活用されています。

  • データ分析:データのばらつきを表すために絶対値を用いる場合がある
  • プログラミングにおけるエラー処理や条件分岐:結果の差分の大きさを計算する

これらの活用事例からも、絶対値の計算方法を理解することの重要性が伺えます。

#データ分析
data = [10, -5, 8, -3, 12, -7]
absolute_values = [abs(x) for x in data]
print(absolute_values)
# 出力:[10, 5, 8, 3, 12, 7]

#エラー処理や条件分岐
a = 15
b = 7

diff = abs(a - b)
if diff > 5:
    print("The difference is large.")
else:
    print("The difference is small.")

#出力結果:The difference is large.

Pythonで絶対値を求める基本的な方法

こちらでは、Pythonで絶対値を求める基本的な方法として、組み込み関数abs()とmathモジュールについて解説します。

  • 組み込み関数 abs() の使い方
  • mathモジュールを使った絶対値計算

組み込み関数 abs() の使い方

Pythonには、絶対値を計算するための組み込み関数abs()が存在します。

引数に数値を取り、その数値の絶対値を返すものです。

x = -5
y = 3.14
z = -10.7

abs_x = abs(x)
abs_y = abs(y)
abs_z = abs(z)

print(f"xの絶対値は {abs_x} です")
print(f"yの絶対値は {abs_y} です")
print(f"zの絶対値は {abs_z} です")


# 出力結果
# xの絶対値は 5 です
# yの絶対値は 3.14 です
# zの絶対値は 10.7 です

abs() の引数と戻り値

abs()関数の引数には、整数や浮動小数点数を指定できます。

結果として返されるのは、引数が整数の場合、整数の絶対値です。

引数が浮動小数点数の場合、その絶対値が浮動小数点数として返されます。

x = -10
y = 3.14

abs_x = abs(x)
abs_y = abs(y)

print(f"xの絶対値は {abs_x} です")
print(f"yの絶対値は {abs_y} です")

# 出力結果
# xの絶対値は 10 です
# yの絶対値は 3.14 です

abs() の実践的な例

こちらが、abs()関数の実際の使用例です

print(abs(-5))  # 5
print(abs(3.14))  # 3.14
print(abs(-3.14))  # 3.14

このように、abs()関数は非常にシンプルで直感的に使用できます。

mathモジュールを使った絶対値計算

Pythonの標準ライブラリであるmathモジュールにも、絶対値を求めるための関数fabs()があります

こちらもabs()同様、引数の絶対値を求めますが、戻り値は常に浮動小数点数となります。

import math

x = -10
y = 3.14

abs_x = math.fabs(x)
abs_y = math.fabs(y)

print(f"xの絶対値は {abs_x} です")
print(f"yの絶対値は {abs_y} です")

# 出力結果
# xの絶対値は 10.0 です
# yの絶対値は 3.14 です

math.fabs() の使い方と実例

mathモジュールを使った絶対値の計算方法を以下に示します。

import math

print(math.fabs(-5))  # 5.0
print(math.fabs(3.14))  # 3.14
print(math.fabs(-3.14))  # 3.14

math.abs() との違い

math.fabs()とabs()の主な違いは、前述の通り戻り値が常に浮動小数点数である点です。

math.fabs()の戻り値は必ず浮動小数点数になり、絶対値の計算結果を浮動小数点数で統一したい場合などに利用できます。

一方、abs()は引数の型に応じて戻り値の型が異なります。

整数型の場合は整数を、浮動小数点数型の場合は浮動小数点数を返します。

つまり、abs()は引数の型によって戻り値の型が変わるため、絶対値の計算結果を元の型で保持したい場合に便利です。

配列(リスト)の要素の絶対値を求める方法

こちらでは、Pythonの配列(リスト)の各要素の絶対値を求める方法について解説します。

  • 配列の各要素の絶対値の計算方法
  • 実践例と応用

配列の各要素の絶対値の計算方法

Pythonのリスト(配列)に含まれる各要素の絶対値を求めるには、リスト内包表記と組み込み関数abs()を組み合わせます。

以下がその例です。

numbers = [-5, 3, -1, 3.14, -2.71]
abs_numbers = [abs(num) for num in numbers]

print(abs_numbers)  # [5, 3, 1, 3.14, 2.71]

リスト内包表記を使うことで一行で全要素の絶対値を計算できます。

実践例と応用

内包表記を使った方法を応用して、データ処理に活用する例を見てみましょう。

例えば、あるデータセットの誤差を計算した結果がリストとして与えられ、その誤差の平均を絶対値で求めます。

errors = [1.5, -2.3, 0.9, -1.2, 0.4]
abs_errors = [abs(err) for err in errors]

average_abs_error = sum(abs_errors) / len(abs_errors)
print(average_abs_error)  # 1.26

誤差の絶対値の平均を簡単に求められます。

このような方法で、絶対値の計算はデータ解析においても非常に役立つのです。

注意点とTips

Pythonで絶対値を求める際の注意点と、さらに良いコードを書くためのTipsについてお伝えします。

  • 文字列やリストへの適用について
  • パフォーマンス向上のための工夫

文字列やリストへの適用について

絶対値を求める組み込み関数abs()は、数値に対してのみ使用してください。

文字列やリストなどの他のデータ型に対しては使用できません。

print(abs("Python"))  # TypeError: bad operand type for abs(): 'str'

文字列に対してabs()関数を適用しようとすると、TypeErrorが発生します。

パフォーマンス向上のための工夫

大量のデータを扱う場合、絶対値を求める方法によってはパフォーマンスが大きく影響を受けることがあります。

math モジュールの fabs() 関数は、全Pythonオブジェクトに対して動作するからです。

結果をfloat型として返すため、少しだけ遅い可能性があります。

対して組み込み関数 abs() は、 Python のビルトイン C 関数を使用して実装されており、非常に高速です。

ただしfabs()関数の方が精度が高い場合もあるので、使用する関数の選択はパフォーマンスだけでなく、計算の精度も考慮しましょう。

まとめ

当記事では、Pythonで絶対値を計算する方法についてお伝えしてきました。

  • 絶対値の概念とその活用シーン
  • 組み込み関数 abs() の使い方と、mathモジュールの fabs() の使い方
  • リスト内の全要素に対する絶対値の計算方法
  • 文字列やリストへの適用についての注意点、パフォーマンス向上のための工夫

Pythonは、その豊富なライブラリとシンプルな文法により、初心者でも扱いやすい言語です。

その機能を最大限に引き出すためには、基本的な機能を理解し、適切な使い方を学ぶことが重要です。

Pythonの学習は、基本的な文法から始め、徐々に機能を追加して、より高度なプログラミングが可能になります。

これからも一緒にPythonの学習を進めていきましょう。

タイトルとURLをコピーしました