Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの対数関数(log)の使い方を徹底解説!mathモジュールでさまざまな底の対数を計算する方法

本記事では、Python 3.xにおける対数(ログ)関数の使い方について詳しく解説します。底(基数)の異なる対数値の求め方を中心に、Python標準ライブラリのmathモジュールを活用した対数計算の基本をわかりやすく見ていきましょう。

mathモジュールのインポート

まずは、対数計算に必要なmathモジュールをインポートします。

>>> import math

インポート後は、mathモジュールが提供するすべての関数を自由に使えるようになります。

各種対数関数の実装例

次に、Pythonで利用できる代表的な対数関数の具体的な実装例を見てみましょう。

import math

# 自然対数(底e)
print('56の自然対数 :', math.log(56))
# 底8の対数
print('64の底8の対数 :', math.log(64, 8))
# 底2の対数
print('12の底2の対数 :', math.log2(12))
# 常用対数(底10)
print('64の常用対数 :', math.log10(64))
# log(1+x) を高精度で計算
print('log1p(4) の値 :', math.log1p(4))

実行結果

56の自然対数 : 4.02535169073515
64の底8の対数 : 2.0
12の底2の対数 : 3.584962500721156
64の常用対数 : 1.806179973983887
log1p(4) の値 : 1.6094379124341003

主な対数関数の一覧

mathモジュールには、用途に応じて複数の対数関数が用意されています。それぞれの特徴を整理すると以下の通りです。

  • math.log(x):xの自然対数(底e)を返します。
  • math.log(x, base):第2引数で指定した底baseの対数を返します。
  • math.log2(x):xの底2の対数を返します。
  • math.log10(x):xの常用対数(底10)を返します。
  • math.log1p(x):log(1+x)を返します。xが非常に小さい値の場合でも高精度に計算できます。

負の値を指定した場合のエラー処理

対数関数に負の値を渡すと、ValueErrorが発生します。これは、数学の定義域において負の値の対数が定義されていないためです。

実際に負の値を指定して関数を実行してみましょう。

import math

print(math.log(-5))

実行結果

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
    print(math.log(-5))
ValueError: math domain error

このようなエラーを回避するには、事前に値が正であるかどうかを判定するか、try-except文で例外を捕捉するのが一般的です。

import math

x = -5
if x > 0:
    print(math.log(x))
else:
    print('対数は正の値に対してのみ定義されています')

まとめ

本記事では、Python 3.xにおける対数関数の基本的な使い方を学びました。mathモジュールには、自然対数を求めるmath.log()をはじめ、底2のmath.log2()、底10のmath.log10()、高精度計算に便利なmath.log1p()など、目的に応じた多彩な関数が揃っています。一方で、負の値を指定するとValueErrorが発生する点には注意が必要です。これらの関数を使いこなせば、データ分析や科学技術計算など、さまざまな場面で対数計算を効率的に行えるようになります。

  1. Pythonのdecimalモジュール徹底解説!sqrt・exp・log・compareなど主要関数の使い方

    Pythonには、10進浮動小数点数(decimal floating point)を扱うためのdecimalモジュールが標準ライブラリとして用意されています。このモジュールを使うと、正しく丸められた高精度な浮動小数点演算が可能になります。 通常のfloat型は内部で2進数によって数値を表現するため、「0.1 + 0.2」が厳密には0.3にならないといった誤差が発生します。decimalモジュールは、金額計算など厳密な精度が求められる場面で特に役立ちます。 利用するには、まずdecimalモジュールをインポートします。 import decimal 本記事では、decimalモジュールで使える

  2. Pythonのmathモジュール完全ガイド|定数・数値関数・べき乗・三角関数の使い方

    Pythonのmathモジュールとは Pythonのmathモジュールは、数学計算のための関数や定数をまとめた標準ライブラリです。このモジュールの関数は整数型や浮動小数点型(実数)のオブジェクトを対象としており、複素数には対応していません。複素数を扱いたい場合は、代わりにcmathモジュールを使用します。 mathモジュールを利用するには、まずコード内でインポートします。 import math mathモジュールの主な定数 mathモジュールには、計算式の中でそのまま使える便利な定数が用意されています。 番号定数と説明 1pi円周率πの値を返します(3.141592…)。 2E自然対数