Python NumPyのreal_if_close関数で虚数部がゼロに近い複素数配列から実数部を取得する方法
入力された配列が複素数型で、かつすべての虚数部がゼロに近い場合に実数部だけを返したいときは、PythonのNumPyライブラリが提供する numpy.real_if_close 関数を使用します。
ここで「ゼロに近い」とは、tol ×(配列aのデータ型におけるマシンイプシロン) として定義されます。入力配列 a が実数型の場合はそのまま出力され、複素数要素を含む場合は戻り値の型は float になります。
主なパラメータは以下の2つです。
- 第1引数(a):入力となる配列
- 第2引数(tol):配列要素の虚数部に対する許容誤差(マシンイプシロン単位で指定)
手順
まず、必要なライブラリをインポートします。
import numpy as np
array() メソッドを使ってNumPy配列を作成します。ここでは、虚数部が非常に小さい複素数を含む配列を用意しました。
arr = np.array([2.1 + 4e-14j, 5.2 + 3e-15j])
作成した配列を表示します。
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)虚数部がゼロに近い複素数配列から実数部を返すには、numpy.real_if_close を使用します。「ゼロに近い」の基準は tol × マシンイプシロンで決まります。
print("\nResult...\n",np.real_if_close(arr, tol = 1000))サンプルコード全体
import numpy as np
# array() メソッドでNumPy配列を作成
arr = np.array([2.1 + 4e-14j, 5.2 + 3e-15j])
# 配列を表示
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)
# 虚数部がゼロに近い複素数配列から実数部を返す
print("\nResult...\n",np.real_if_close(arr, tol = 1000))出力結果
Our Array... [2.1+4.e-14j 5.2+3.e-15j] Dimensions of our Array... 1 Datatype of our Array object... complex128 Shape of our Array object... (2,) Result... [2.1 5.2]
このように、np.real_if_close() を使うことで、誤差レベルの微小な虚数部を持つ複素数配列を、きれいな実数配列へと変換できます。数値計算の過程で発生する不要な虚数成分を除去したい場合に非常に便利な関数です。
-
Python NumPyで複素数を含む配列の2を底とする対数を計算する方法(np.log2)
入力配列の2を底とする対数(log2)を求めるには、PythonのNumPyで用意されている numpy.log2() メソッドを使用します。このメソッドは、引数 x の2を底とする対数を返します。x がスカラーの場合、結果もスカラーとして返されます。numpy.log2() の主なパラメータ第1パラメータの x は入力値で、配列のようなオブジェクト(array-like)を指定します。第2パラメータの out は、計算結果を格納する場所です。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新しく確保された配列が返されま
-
Python NumPyのnp.log2()で入力配列の底2の対数を計算する方法
PythonのNumPyで入力配列の各要素に対して底2の対数(log₂)を求めるには、numpy.log2()メソッドを使用します。このメソッドは引数xの底2の対数を返します。xがスカラーの場合、戻り値もスカラーになります。numpy.log2()の主なパラメータ第1パラメータ:x — 入力値を指定します。配列のようなオブジェクト(array-like)を受け付けます。第2パラメータ:out — 計算結果を格納する場所を指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNoneを指定した場合は、新しく確保された配列が返されます。タプルで指定