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

【Python】NumPyのarccosh()で配列要素の逆双曲線余弦を計算する方法

arccosh(逆双曲線余弦)関数の概要

arccoshは多価関数です。各xに対して、cosh(z) = x を満たす数zは無限に存在します。慣例としては、虚部が[-π, π]の範囲内にあり、実部が[0, +∞]の範囲にあるzを返します。

実数値の入力データ型の場合、arccoshは常に実数の出力を返します。ただし、実数や無限大として表現できない値に対してはnanを返し、無効な浮動小数点エラーフラグを設定します。一方、複素数値の入力の場合、arccoshは分岐切断[-∞, 1]を持ち、その上側から連続となる複素解析関数として振る舞います。

numpy.arccosh()メソッドについて

配列要素の逆双曲線余弦(アークハイパボリックコサイン)を計算するには、numpy.arccosh()メソッドを使用します。このメソッドは入力xと同じ形状の配列を返し、xがスカラーであればスカラーを返します。

主なパラメータ

  • x(第1引数): 入力配列です。
  • out(第2引数・省略可): 結果を格納するndarrayです。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合やNoneの場合は、新しく確保された配列が返されます。
  • where(第3引数・省略可): 入力全体にブロードキャストされる条件です。条件がTrueの場所ではout配列にufuncの結果が設定され、それ以外の場所ではout配列は元の値を保持します。

計算の手順

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

import numpy as np

NumPyのarray()メソッドを使って配列を作成します。

arr = np.array((0., 30., 45., 60., 90., 180., np.pi*1j/2, np.pi*1j))

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

print("Array...\n",arr)

配列のデータ型を確認します。

print("\nArray datatype...\n",arr.dtype)

配列の次元数を取得します。

print("\nArray Dimensions...\n",arr.ndim)

配列の要素数を取得します。

print("\nNumber of elements in the Array...\n",arr.size)

配列要素の逆双曲線余弦を求めるには、Python NumPyのnumpy.arccosh()メソッドを使用します。

print("\nResult...",np.arccosh(arr))

完全なコード例

import numpy as np

# 配列要素の逆双曲線余弦を計算するには、Python NumPyのnumpy.arccosh()メソッドを使用します
# このメソッドはxと同じ形状の配列を返します。xがスカラーの場合はスカラーを返します
print("配列要素の逆双曲線余弦を取得...")

# NumPyの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)

# numpy.arccosh()メソッドで配列要素の逆双曲線余弦を計算
print("\nResult...",np.arccosh(arr))

出力結果

配列要素の逆双曲線余弦を取得...
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. +1.57079633j 4.09406667+0.j 4.49968619+0.j
 4.78742229+0.j 5.19292599+0.j 5.88609632+0.j
 1.23340312+1.57079633j 1.86229574+1.57079633j]

結果のポイント

この例では、実数値(0、30、45など)と虚数値(np.pi*1j/2、np.pi*1j)を混在させた配列を作成しているため、配列の型はcomplex128になります。実数値に対しては実部のみの結果が返されますが、arccoshの定義域はx ≥ 1であるため、0のような定義域外の値に対しては虚部を持つ複素数の結果が返されている点に注目してください。このように、numpy.arccosh()は実数・複素数のどちらの入力にも対応した柔軟な計算を提供します。

  1. Pythonで配列要素の逆正弦(arcsin)を求める方法 ― NumPyのarcsin()関数の使い方

    逆正弦(arcsin)は多価関数です。つまり、各xに対して sin(z) = x を満たすzは無限に存在します。NumPyでは慣例として、実部が [-π/2, π/2] の範囲に収まる角度zを返します。なお、逆正弦は asin や sin-1 とも呼ばれます。実数値の入力データ型の場合、arcsinは常に実数の出力を返します。ただし、実数や無限大として表現できない値が含まれる場合は nan を返し、無効な浮動小数点演算のエラーフラグが設定されます。一方、複素数値の入力の場合、arcsinは複素解析関数として扱われ、慣例により枝切り(branch cuts)は [-∞, -1] と [1, +∞

  2. Python NumPyのnp.tanh()で配列要素の双曲線正接を計算する方法

    配列要素の双曲線正接(ハイパボリック・タンジェント)を計算するには、PythonのNumPyが提供する numpy.tanh() メソッドを使用します。このメソッドは np.sinh(x)/np.cosh(x) または -1j * np.tan(1j*x) と数学的に等価であり、入力値に対応する双曲線正接の値を返します。入力 x がスカラーの場合、戻り値もスカラーになります。np.tanh()の主な引数第1引数(x): 入力となる配列です。ここに渡した各要素に対して双曲線正接が計算されます。第2引数と第3引数は省略可能です。第2引数(out): 計算結果を格納するためのndarrayです。指定