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

Python NumPyのscimath.log10()で10を底とする対数(常用対数)を計算する方法

PythonのNumPyでは、np.emath.log10() メソッド(旧称:scimath.log10)を使用することで、10を底とする対数(常用対数)を計算できます。このメソッドは、入力した値 x の各要素に対する常用対数を返し、引数としてスカラーを渡せばスカラーを、配列を渡せば配列オブジェクトを結果として返します。

np.emath.log10() の最大の特徴は、負の値を含む入力にも対応できる点です。通常の numpy.log10() は実数 x が 0 未満の場合に NaN を返しますが、emath版はその場合に複素数の主値を返します。ただし、x = 0 のときに -inf を、x = inf のときに inf を返すといった挙動は両者で共通しています。第1パラメータの x には、対数を求めたい値または値の配列を指定します。

手順

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

import numpy as np

array() メソッドを使ってNumPy配列を作成します。ここでは正と負の値が混在する配列を用意します。

arr = np.array([10**1, -10**1, -10**2, 10**2, -10**3, 10**3])

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

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)を使って10を底とする対数を計算するには、np.emath.log10() メソッドを使用します。

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

サンプルコード

import numpy as np

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

# 配列を表示
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.log10() メソッドで10を底とする対数を計算
print("\nResult (log10)...\n",np.emath.log10(arr))

実行結果

Our Array...
[ 10 -10 -100 100 -1000 1000]

Dimensions of our Array...
1

Datatype of our Array object...
int64

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

Result (log10)...
[1.+0.j 1.+1.36437635j 2.+1.36437635j 2.+0.j
3.+1.36437635j 3.+0.j ]

実行結果を見ると、正の値(10、100、1000)に対しては通常の対数計算と同じく 1.+0.j2.+0.j3.+0.j という実数の結果が返されています。一方、負の値(-10、-100、-1000)に対しては虚部を持つ複素数(例:1.+1.36437635j)が返されており、エラーやNaNにならずに計算が完了していることがわかります。このように、np.emath.log10() を使えば、負の値を含むデータでも例外を発生させることなく対数計算を処理できます。

  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 を指定した場合は、新たに確保された配列が返さ