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

PythonのNumPyでscimathを使って自然対数を計算する方法

PythonのNumPyでscimath機能を使って自然対数を計算するには、np.emath.log()メソッドを使用します。このメソッドは、引数に渡した値xの対数(log)を返します。xがスカラーであれば結果もスカラーとして、配列であれば配列として返されます。第1パラメータのxには、対数を求めたい値(または値の集合)を指定します。

np.emath.log()の大きな特徴は、通常のnp.log()ではNaNになってしまう負の値に対しても、虚部πを持つ複素数として正しい結果を返してくれる点です。そのため、無限大や負の値を含む配列でもエラーなく自然対数を計算できます。

手順

まず、必要なライブラリをインポートします。

import numpy as np

次に、array()メソッドを使ってNumPy配列を作成します。ここでは、正の無限大・負の無限大・ネイピア数e・その負の値を含む配列を用意します。

arr = np.array([np.inf, -np.inf, np.exp(1), -np.exp(1)])

作成した配列を表示します。

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を使って自然対数を計算します。Python NumPyのnp.emath.log()メソッドを呼び出すだけです。

print("\nResult (log)...\n",np.emath.log(arr))

完全なコード例

import numpy as np

# array()メソッドでNumPy配列を作成
arr = np.array([np.inf, -np.inf, np.exp(1), -np.exp(1)])

# 配列を表示
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で自然対数を計算
print("\nResult (log)...\n",np.emath.log(arr))

実行結果

Our Array...
[ inf -inf 2.71828183 -2.71828183]

Dimensions of our Array...
1

Datatype of our Array object...
float64

Shape of our Array object...
(4,)

Result (log)...
[inf+0.j inf+3.14159265j 1.+0.j 1.+3.14159265j]

結果の解説

出力を見ると、以下のような挙動が確認できます。

  • np.inf(正の無限大)inf+0.j:対数も無限大になります。
  • -np.inf(負の無限大)inf+3.14159265j:絶対値の対数に虚部πが加わった複素数になります。
  • np.exp(1)(ネイピア数e)1.+0.j:eの自然対数は1です。
  • -np.exp(1)(-e)1.+3.14159265j:負の値でも複素数として log(e) + iπ が返されます。

このように、np.emath.log()を使えば、負の値や無限大を含む入力でも複素数領域に自動的に拡張して計算してくれるため、数学的な整合性を保ちながら安全に自然対数を求めることができます。

  1. Pythonで複素数値入力の自然対数を計算する方法

    自然対数は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、e(ネイピア数)を底とする対数のことです。NumPyの np.log() メソッドは、入力xの自然対数を要素ごとに計算して返します。xがスカラーの場合はスカラー値を返します。np.log() の主なパラメータ第1パラメータは入力値で、配列状のオブジェクト(array-like)を指定します。第2パラメータの out は、計算結果を格納する場所です。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新しく確保された配列が

  2. 【Python】NumPyで自然対数(log)を計算する方法

    自然対数(log)は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、ネイピア数 e を底とする対数のことです。NumPy の np.log() メソッドは、入力 x の自然対数を要素ごとに計算して返します。x がスカラーであれば、戻り値もスカラーになります。 主なパラメータ 第1引数(x): 入力値。配列様(array-like)オブジェクトを指定します。 第2引数(out): 結果を格納する場所。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新たに確保された配列が返さ