PythonのMathライブラリとPythonライブラリの両方に、対数を見つけるための関数があります。
import numpy as np
import math
1. ゴツゴツしたライブラリ
1.1 e、2、10を底とする対数を求めます
機能 | 機能 |
---|---|
np.log(x) | eに基づく対数(自然対数) |
np.log10(x) | ログベース10 |
np.log2(x) | 2を底とする対数 |
np.log1p(x) | 同等:np.log(x + 1) |
注:np.expm1(x)はnp.exp(x)– 1と同等であり、np.log1p(x)の逆演算でもあります。
1.2 任意の数の基本対数を見つける
Numpyでは、任意の数に基づく対数は、基本交換式を使用する必要があります。
例:ベース3、5の対数
コードは次のように記述されています。
np.log(5)/np.log(3)
2. 数学ライブラリ
2.1 e、2、10を底とする対数を求めます
Numpyでの使用法とまったく同じです
機能 | 機能 |
---|---|
math.log(x) | eに基づく対数(自然対数) |
math.log10(x) | 10を底とする対数 |
math.log2(x) | ベース2の対数 |
math.log1p(x) | 同等:math.log(x + 1)、データの平滑化に使用 |
注:math.expm1(x)は、math.exp(x)– 1と同等です。これは、math.log1p(x)の逆演算でもあります。
2.2 任意の数の基本対数を見つける
math.log(x, n)
ここで、nはベースです。
3. 違い
Mathライブラリで対数を見つける方法があるのに、同じ関数がNumpyライブラリに組み込まれているのはなぜですか?
理由:
数学ライブラリでは、関数の入力xは単一の数値のみにすることができます。
math.log10(100)[out]:2.0
入力がリストの場合:
math.log10([10,100]) #エラーを報告します
TypeError: must be real number, not list
Numpyライブラリでは、関数の入力xは、単一の数値だけでなく、リストまたはNumpy配列にすることもできます。
np.log10([10,100])[out]:array([1.,2.])
np.log10([[10,100],[1000,10000]])[out]:array([[1.,2.],[3.,4.]])
結果はNumpy配列です。つまり、Numpyの関数は、ループすることなく各要素のバッチ処理を実現できます。
これまで、Pythonの対数法の概要に関するこの記事を紹介しました。関連するPython対数の内容については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後もZaLouをサポートしていただければ幸いです。 Cn!
Recommended Posts