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

Python NumPyのsinh()メソッドで配列要素の双曲線正弦(ハイパボリックサイン)を計算する方法

PythonのNumPyライブラリには、配列要素の双曲線正弦(ハイパボリックサイン)を計算するためのnumpy.sinh()メソッドが用意されています。このメソッドは、数式で表すと 1/2 * (np.exp(x) - np.exp(-x)) または -1j * np.sin(1j*x) と等価であり、入力された各要素に対応する双曲線正弦の値を返します。入力xがスカラーの場合は、結果もスカラーとして返されます。

numpy.sinh()の主な引数

このメソッドは3つの引数を受け取ります。第1引数のxは計算対象となる入力配列です。第2引数と第3引数は省略可能です。

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

実装手順

1. 必要なライブラリをインポートする

まず、NumPyライブラリをインポートします。

import numpy as np

2. 配列を作成する

NumPyの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. numpy.sinh()で双曲線正弦を計算する

最後に、numpy.sinh()メソッドを使って配列各要素の双曲線正弦を求めます。

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

完全なコード例

import numpy as np

# numpy.sinh()メソッドで配列要素の双曲線正弦を計算する
# このメソッドは 1/2 * (np.exp(x) - np.exp(-x)) または -1j * np.sin(1j*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)

# numpy.sinh()メソッドで双曲線正弦を計算
print("\nResult...", np.sinh(arr))

実行結果

Get the Trigonometric Hyperbolic sine of the 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.00000000e+00+0.0000000e+00j 5.34323729e+12+0.0000000e+00j
1.74671355e+19+0.0000000e+00j 5.71003695e+25+0.0000000e+00j
6.10201647e+38+0.0000000e+00j 7.44692100e+77+0.0000000e+00j
0.00000000e+00+1.0000000e+00j -0.00000000e+00+1.2246468e-16j]

まとめ

このように、numpy.sinh()メソッドを使えば、配列内のすべての要素に対して一括で双曲線正弦を効率的に計算できます。大きな角度の値では結果が急激に大きくなる点、また虚数を含む複素数配列にも対応している点に注目してください。データサイエンスや科学技術計算において、三角関数・双曲線関数のベクトル化処理は非常に頻繁に使われるため、ぜひ覚えておきましょう。

  1. PyTorchでテンソルの各要素の正弦(サイン)を計算する方法

    PyTorchでテンソルの各要素の正弦(サイン)を計算するには、torch.sin()メソッドを使用します。このメソッドは、元の入力テンソルの各要素に対する正弦値を格納した新しいテンソルを返します。引数としてテンソルを受け取り、計算結果のテンソルを出力します。計算の手順必要なライブラリをインポートします。以降のすべてのPythonサンプルではtorchライブラリを使用するため、事前にインストールしておいてください。テンソルを作成し、内容を表示します。torch.sin(input)を実行します。引数inputにはテンソルを渡し、その各要素の正弦値を含む新しいテンソルが返されます。正弦値が計算さ

  2. Pythonでリストの重複要素を出力するプログラムの書き方

    リスト(配列)の中から重複している要素を見つけて出力したい場合、リストの各要素を順番に取り出して比較する、ネストされたループ(二重ループ)を使うのが基本的なアプローチです。以下に具体的な実装例を示します。サンプルコードmy_list = [1, 2, 5, 6, 8, 9, 3, 4, 8, 9, 1, 8] print(リストの内容 :) print(my_list) print(重複している要素は次のとおりです : ) for i in range(0, len(my_list)): for j in range(i+1, len(my_list)): if(my_