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

Python NumPyのscimathで底2の対数を計算する方法(np.emath.log2の使い方)

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

実行手順

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

import numpy as np

array()メソッドを使ってNumPy配列を作成します。ここでは、正負の無限大や負の値など、さまざまなケースを含む配列を用意しています。

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

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

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を使って底2の対数を計算するために、np.emath.log2()メソッドを呼び出します。このメソッドは、入力がスカラーならスカラーを、配列なら配列を返します。

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

サンプルコード

import numpy as np

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

# 配列を表示
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を使って底2の対数を計算
# スカラー入力ならスカラーを、配列入力なら配列を返す
print("\nResult (log2)...\n",np.emath.log2(arr))

実行結果

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

Dimensions of our Array...
1

Datatype of our Array object...
float64

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

Result (log2)...
[ inf+0.j inf+4.53236014j 4. +0.j
1.44269504+0.j 1.44269504+4.53236014j 5. +4.53236014j]

実行結果を見ると、通常のnp.log2()ではエラーやNaNになる負の値や-infに対しても、np.emath.log2()は複素数として適切に計算できていることがわかります。たとえば、-32の底2の対数は「5.+4.53236014j」という複素数の結果になります。これは、emathモジュールが自動的に複素数領域へ拡張して処理してくれるためです。

  1. 【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

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

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