PythonのNumPy scimathで底nの対数を計算する方法
PythonのNumPyでscimath(np.emath)を使って底nの対数を計算するには、emath.logn() メソッドを使用します。このメソッドは、指定した値xの底nの対数を返します。xがスカラーであれば結果もスカラーとして、配列であれば配列として返されます。
emath.logn() の大きな特徴は、入力値xに負の数が含まれていても、結果が複素数領域で正しく計算・返却される点です。通常の np.log() では負の入力に対してNaNが返されますが、scimathを使えばエラーにならずに扱えます。
各パラメータの意味は以下の通りです。
- 第1引数 n: 対数の底(基数)となる整数。
- 第2引数 x: 底nの対数を求めたい値、または値の配列。
手順
まず、必要なライブラリをインポートします。
import numpy as np
array() メソッドを使ってNumPy配列を作成します。ここでは負の値を含む配列を用意します。
arr = np.array([-4, -8, 8])
作成した配列を表示します。
print("Our Array...\n",arr)配列の次元数を確認します。
print("\nDimensions of our Array...\n",arr.ndim)配列のデータ型を取得します。
print("\nDatatype of our Array object...\n",arr.dtype)配列の形状を取得します。
print("\nShape of our Array object...\n",arr.shape)scimathで底nの対数を計算するには、emath.logn() メソッドを使用します。ここでは底を2として計算します。
print("\nResult (logn)...\n",np.emath.logn(2, arr))完全なコード例
import numpy as np
# array()メソッドを使ってNumPy配列を作成
arr = np.array([-4, -8, 8])
# 配列を表示
print("Our Array...\n",arr)
# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)
# データ型を取得
print("\nDatatype of our Array object...\n",arr.dtype)
# 形状を取得
print("\nShape of our Array object...\n",arr.shape)
# scimath(emath.logn())を使って底2の対数を計算
# xがスカラーなら結果もスカラー、配列なら配列として返される
print("\nResult (logn)...\n",np.emath.logn(2, arr))出力結果
Our Array... [-4 -8 8] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (3,) Result (logn)... [2.+4.53236014j 3.+4.53236014j 3.+0.j ]
結果の解説
出力を見ると、正の値 8 に対しては通常の実数 3.+0.j(log₂8 = 3)が返されている一方、負の値 -4 と -8 に対しては虚部を持つ複素数が返されています。
例えば log₂(-4) は数学的には ln(-4)/ln(2) = (ln4 + iπ)/ln2 ≈ 2 + 4.53236014j となり、出力結果と一致します。このように、np.emath.logn() を使えば負の入力を含むデータでも安全に対数計算を行うことができます。
-
【Python・NumPy】np.linalg.det()で配列の行列式を計算する方法
線形代数において配列の行列式を計算するには、PythonのNumPyが提供する np.linalg.det() 関数を使用します。第1引数 a は、行列式を求める対象となる入力配列です。この関数は、計算された行列式の値を返します。なお、行列式とは正方行列に対して定義されるスカラー値であり、連立一次方程式の解の存在判定や逆行列の計算など、線形代数のさまざまな場面で重要な役割を果たします。手順まず、必要なライブラリをインポートします。import numpy as np配列を作成します。arr = np.array([[ 5, 10], [12, 18]])配列を表示します。print(Our A
-
【Python】NumPyで自然対数(log)を計算する方法
自然対数(log)は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、ネイピア数 e を底とする対数のことです。NumPy の np.log() メソッドは、入力 x の自然対数を要素ごとに計算して返します。x がスカラーであれば、戻り値もスカラーになります。 主なパラメータ 第1引数(x): 入力値。配列様(array-like)オブジェクトを指定します。 第2引数(out): 結果を格納する場所。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新たに確保された配列が返さ