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です。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略した場合や None を指定した場合は、新しく確保された配列が返されます。
第3引数(where): 入力全体にブロードキャストされる条件です。条件が 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)最後に、numpy.tanh() メソッドを使って配列要素の双曲線正接を計算して表示します。
print("\nResult...\n",np.tanh(arr))サンプルコード
import numpy as np
# numpy.tanh()メソッドで配列要素の双曲線正接を計算する
# このメソッドは np.sinh(x)/np.cosh(x) または -1j * np.tan(1j*x) と等価
print("配列要素の双曲線正接を取得します...\n")
# 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.tanh()メソッドで双曲線正接を計算
print("\nResult...\n", np.tanh(arr))実行結果
Get the Trigonometric Hyperbolic tangent 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.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j 1.+0.00000000e+00j 0.+1.63312394e+16j 0.-1.22464680e-16j]
実行結果から、実数部分が大きい値(30、45、60、90、180など)に対しては双曲線正接がほぼ1.0に収束することがわかります。また、虚数入力に対しても複素数として正しく計算されていることが確認できます。
-
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_
-
Pythonでリスト(配列)の要素を左に回転させる方法を徹底解説
Pythonでは、リスト(配列)の要素を左に回転させたい場合、リストを反復処理しながら、指定した回数だけ要素の位置をずらしていくことで実現できます。 本記事では、for文を使った基本的な左回転の実装方法を、サンプルコードと実行結果とともにわかりやすく解説します。さらに、スライスを使ったより簡潔な書き方もあわせてご紹介します。 サンプルコード my_list = [11, 12, 23, 34, 65] n = 3 print(元のリスト:) for i in range(0, len(my_list)): print(my_list[i]) for i in range(0, n