Python NumPyのemath.sqrt()を使って負の値の平方根を計算する方法
負の数を含む入力値の平方根を計算したい場合、Python NumPyが提供する scimath.sqrt() メソッド(別名 np.emath.sqrt())を使用します。このメソッドは引数 x の平方根を返し、x がスカラーであれば結果もスカラーとして、配列であれば配列として返します。パラメータ x には入力値を指定し、負の要素が含まれる場合は自動的に複素数の値が返されるのが特徴です。
手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、array() メソッドを使ってNumPy配列を作成します。ここでは正と負の値が混在した配列を用意します。
arr = np.array([1, -4, -9, 16, -25, 36])
作成した配列を表示してみましょう。
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.sqrt() メソッドを使用します。このメソッドは x の平方根を返し、x がスカラーならスカラーを、配列なら配列を結果として返します。
print("\nResult...\n",np.emath.sqrt(arr))サンプルコード
import numpy as np
# array()メソッドを使ってNumPy配列を作成
arr = np.array([1, -4, -9, 16, -25, 36])
# 配列を表示
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.sqrt()メソッドで平方根を計算
print("\nResult...\n",np.emath.sqrt(arr))実行結果
Our Array... [ 1 -4 -9 16 -25 36] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (6,) Result... [1.+0.j 0.+2.j 0.+3.j 4.+0.j 0.+5.j 6.+0.j]
このように、通常の np.sqrt() では負の値に対して NaN が返されるところ、np.emath.sqrt() を使えば負の入力要素に対して自動的に複素数へ変換され、正しく平方根を求めることができます。実部と虚部を持つ複素数型(complex)の結果が得られるため、信号処理や数学的な計算において負の数を扱う際に非常に便利です。
-
Pythonのnumpy.linalg.cond()で負の2ノルムを使って行列の条件数を計算する方法
線形代数において行列の条件数を計算するには、Pythonの numpy.linalg.cond() メソッドを使用します。このメソッドは、引数 p の値に応じて7種類のノルムの中から適切なものを選択し、そのノルムに基づく条件数を返します。なお、計算結果は無限大になる場合もある点に注意してください。 条件数とは? 行列 x の条件数は、「x のノルム × x の逆行列のノルム」として定義されます。ここで使用するノルムは、一般的なL2ノルムのほか、複数の行列ノルムから選ぶことができます。 第1引数 x: 条件数を求めたい対象となる行列を指定します。 第2引数 p: 条件数の計算に使用するノルムの
-
Python NumPyのnp.log2()で入力配列の底2の対数を計算する方法
PythonのNumPyで入力配列の各要素に対して底2の対数(log₂)を求めるには、numpy.log2()メソッドを使用します。このメソッドは引数xの底2の対数を返します。xがスカラーの場合、戻り値もスカラーになります。numpy.log2()の主なパラメータ第1パラメータ:x — 入力値を指定します。配列のようなオブジェクト(array-like)を受け付けます。第2パラメータ:out — 計算結果を格納する場所を指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNoneを指定した場合は、新しく確保された配列が返されます。タプルで指定