Python NumPyで配列要素の逆双曲線正弦(arcsinh)を計算する方法
逆双曲線正弦(arcsinh)は多価関数です。つまり、各 x に対して sinh(z) = x を満たす数 z は無限に存在します。NumPy の慣例では、虚部が [-π/2, π/2] の範囲にある z を返します。
実数値の入力データ型の場合、arcsinh は常に実数の出力を返します。実数や無限大として表現できない値に対しては nan を返し、無効な浮動小数点演算エラーフラグを設定します。
一方、複素数値の入力の場合、arcsinh は分岐切断線 [1j, infj] と [-1j, -infj] を持つ複素解析関数であり、前者については右側から、後者については左側から連続です。なお、逆双曲線正弦は asinh や sinh⁻¹ とも呼ばれます。
numpy.arcsinh() メソッドとは
配列要素の逆双曲線正弦を計算するには、Python NumPy の numpy.arcsinh() メソッドを使用します。このメソッドは入力 x と同じ形状の配列を返し、x がスカラーの場合はスカラーを返します。
- 第1パラメータ(x): 入力配列です。
- 第2パラメータ(out): 結果を格納する場所を指定する ndarray です(省略可能)。指定する場合は、入力がブロードキャストされる形状である必要があります。指定しない場合や None の場合は、新しく確保された配列が返されます。
- 第3パラメータ(where): 入力全体にブロードキャストされる条件です(省略可能)。条件が True の位置では out 配列に ufunc の結果が設定され、それ以外の位置では out 配列は元の値を保持します。
実装の手順
1. 必要なライブラリをインポートする
import numpy as np
2. array() メソッドで配列を作成する
arr = np.array((0., 30., 45., 60., 90., 180., np.pi*1j/2, np.pi*1j))
3. 配列を表示する
print("Array...\n", arr)4. 配列のデータ型を取得する
print("\nArray datatype...\n", arr.dtype)5. 配列の次元を取得する
print("\nArray Dimensions...\n", arr.ndim)6. 配列の要素数を取得する
print("\nNumber of elements in the Array...\n", arr.size)7. 逆双曲線正弦を計算する
配列要素の逆双曲線正弦を求めるには、np.arcsinh() メソッドを使用します。
print("\nResult...", np.arcsinh(arr))完全なコード例
import numpy as np
# 配列要素の逆双曲線正弦を計算するには、
# Python Numpy の numpy.arcsinh() メソッドを使用します。
# このメソッドは x と同じ形状の配列を返します。
# x がスカラーの場合はスカラーを返します。
print("配列要素の三角関数的な逆双曲線正弦を取得します...")
# array() メソッドを使用して配列を作成
arr = np.array((0., 30., 45., 60., 90., 180., np.pi*1j/2, np.pi*1j))
# 配列を表示
print("Array...\n", arr)
# 配列の型を取得
print("\nOur Array type...\n", arr.dtype)
# 配列の次元を取得
print("\nOur Array Dimensions...\n", arr.ndim)
# 配列の要素数を取得
print("\nNumber of elements...\n", arr.size)
# 配列要素の逆双曲線正弦を求めるには、np.arcsinh() メソッドを使用
print("\nResult...", np.arcsinh(arr))実行結果
Get the Trigonometric inverse Hyperbolic sine of array elements... Array... [ 0.+0.j 30.+0.j 45.+0.j 60.+0.j 90.+0.j 180.+0.j 0.+1.57079633j 0.+3.14159265j] Our Array type... complex128 Our Array Dimensions... 1 Number of elements... 8 Result... [0. +0.j 4.09462222+0.j 4.4999331 +0.j 4.78756118+0.j 5.19298771+0.j 5.88611175+0.j 1.02322748+1.57079633j 1.81152627+1.57079633j]
このように、numpy.arcsinh() を使えば、実数と複素数が混在する配列に対しても、一括して逆双曲線正弦を簡単に計算できます。実数部分の大きな値ほど結果も大きくなり、純虚数の入力に対しては複素数の結果が返されることが確認できます。
-
Pythonで双曲線正接(tanh)を計算する方法|NumPyのtanh()関数の使い方
PythonのNumPyで双曲線正接(ハイパボリックタンジェント)を計算するには、numpy.tanh()メソッドを使用します。この関数は np.sinh(x)/np.cosh(x) または -1j * np.tan(1j*x) と等価であり、入力値に対応する双曲線正接の値を返します。スカラー値を渡した場合、結果もスカラーとして返されます。 numpy.tanh()の主なパラメータ 第1引数(x): 入力配列を指定します。 第2引数(out・任意): 計算結果を格納するndarrayを指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNon
-
【Python】NumPyで自然対数(log)を計算する方法
自然対数(log)は指数関数の逆関数であり、log(exp(x)) = x という関係が成り立ちます。自然対数とは、ネイピア数 e を底とする対数のことです。NumPy の np.log() メソッドは、入力 x の自然対数を要素ごとに計算して返します。x がスカラーであれば、戻り値もスカラーになります。 主なパラメータ 第1引数(x): 入力値。配列様(array-like)オブジェクトを指定します。 第2引数(out): 結果を格納する場所。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新たに確保された配列が返さ