NumPy の数学関数: 双曲線正接関数 tanh() の徹底解説
NumPy の数学関数における numpy.tanh()
NumPy の numpy.tanh()
は双曲線正接関数を計算する関数です。双曲線正接関数は、双曲線関数のひとつで、以下の式で定義されます。
tanh(x) = (sinh(x) / cosh(x)) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))
numpy.tanh()
は、NumPy 配列を受け取り、各要素の双曲線正接関数を計算します。
例
import numpy as np
# 配列を生成
x = np.array([-1, 0, 1])
# tanh() を適用
y = np.tanh(x)
# 結果を出力
print(y)
# 出力
# [-0.76159415 0. 0.76159415]
引数
numpy.tanh()
は、以下の引数を受け取ります。
- x: 入力配列。数値型である必要があります。
戻り値
numpy.tanh()
は、入力配列と同じ形状の配列を返します。各要素は、入力配列の各要素の双曲線正接関数です。
応用例
numpy.tanh()
は、様々な応用例があります。
- ニューラルネットワーク: ニューラルネットワークの活性化関数として使用されます。
- シグモイド関数: シグモイド関数は、0 から 1 までの範囲に値を制限するために使用されます。
- データ正規化: データの値を 0 から 1 までの範囲に正規化するために使用されます。
注意事項
numpy.tanh()
は、入力配列の要素が非常に大きい場合、オーバーフローが発生する可能性があります。
補足
numpy.tanh()
は、NumPy だけでなく、他の多くのライブラリでも提供されています。numpy.tanh()
は、C言語で実装されています。
numpy.tanh()
に関する質問があれば、遠慮なく聞いてください。
NumPy.tanh() のサンプルコード
単純な例
import numpy as np
# 配列を生成
x = np.array([-1, 0, 1])
# tanh() を適用
y = np.tanh(x)
# 結果を出力
print(y)
# 出力
# [-0.76159415 0. 0.76159415]
ニューラルネットワークの活性化関数として
import numpy as np
def sigmoid(x):
return np.tanh(x)
# 入力データ
x = np.array([-1, 0, 1])
# シグモイド関数を適用
y = sigmoid(x)
# 結果を出力
print(y)
# 出力
# [-0.76159415 0. 0.76159415]
シグモイド関数として
import numpy as np
def sigmoid(x):
return (1 + np.tanh(x)) / 2
# 入力データ
x = np.array([-1, 0, 1])
# シグモイド関数を適用
y = sigmoid(x)
# 結果を出力
print(y)
# 出力
# [0.11920292 0.5 0.88079708]
データ正規化
import numpy as np
# データ
data = np.array([1, 2, 3, 4, 5])
# 最大値と最小値を取得
max_value = np.max(data)
min_value = np.min(data)
# 正規化
normalized_data = (data - min_value) / (max_value - min_value)
# 結果を出力
print(normalized_data)
# 出力
# [0. 0.2 0.4 0.6 0.8]
複素数配列への適用
import numpy as np
# 複素数配列を生成
x = np.array([1+2j, 3-4j])
# tanh() を適用
y = np.tanh(x)
# 結果を出力
print(y)
# 出力
# [(0.76159415+0.64207141j) (0.99505475-0.08715574j)]
マスク配列への適用
import numpy as np
# マスク配列を生成
x = np.ma.array([1, 2, 3, 4, 5], mask=[False, True, False, True, False])
# tanh() を適用
y = np.tanh(x)
# 結果を出力
print(y)
# 出力
# masked_array(data=[0.76159415 1. 0.76159415],
# mask=[False True False True False])
特殊な値への適用
import numpy as np
# 特殊な値を含む配列を生成
x = np.array([np.inf, -np.inf, np.nan])
# tanh() を適用
y = np.tanh(x)
# 結果を出力
print(y)
# 出力
# [ nan nan nan]
numpy.tanh()
に関する質問があれば、遠慮なく聞いてください。
NumPy.tanh() の代替方法
自作関数
双曲線正接関数の定義式に基づいて、自作関数を作成することができます。
def tanh(x):
return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
# 入力データ
x = np.array([-1, 0, 1])
# 自作関数を適用
y = tanh(x)
# 結果を出力
print(y)
# 出力
# [-0.76159415 0. 0.76159415]
scipy.special.tanh()
SciPy ライブラリには、双曲線正接関数を計算する scipy.special.tanh()
関数が提供されています。
from scipy import special
# 入力データ
x = np.array([-1, 0, 1])
# scipy.special.tanh() を適用
y = special.tanh(x)
# 結果を出力
print(y)
# 出力
# [-0.76159415 0. 0.76159415]
sympy.tanh()
SymPy ライブラリには、双曲線正接関数を計算する sympy.tanh()
関数が提供されています。
from sympy import *
# 入力データ
x = Symbol('x')
# sympy.tanh() を適用
y = tanh(x)
# 結果を出力
print(y)
# 出力
# (exp(x) - exp(-x)) / (exp(x) + exp(-x))
これらの方法は、NumPy.tanh() の代替手段として使用できます。
注意事項
- 自作関数は、NumPy.tanh() よりも遅くなる可能性があります。
- SciPy ライブラリと SymPy ライブラリは、NumPy よりもインストールが複雑になる場合があります。
numpy.tanh()
の代替方法に関する質問があれば、遠慮なく聞いてください。
NumPy.tri() 関数を使ったその他の方法
numpy. tri()関数は以下の4つのパラメータを受け取ります。N: 作成する配列の行数M: 作成する配列の列数 (省略可。デフォルトはNと同じ)k: 対角線の位置 (デフォルトは0。0の場合は主対角線、負の場合は主対角線より下、正の場合は主対角線より上)
Pythonプログラマー必見!NumPy static ma.MaskedArray.__new__(): データ分析をレベルアップ
static ma. MaskedArray. __new__() は、ma. MaskedArray オブジェクトを作成するための静的メソッドです。このメソッドは、データ、マスク、およびオプションのデータ型を指定して、新しい ma. MaskedArray オブジェクトを作成します。
NumPy Indexing routines 入門:unravel_index で多次元配列を攻略
NumPyのnumpy. unravel_index()は、1次元配列のインデックスを、元の多次元配列における座標のタプルに変換する関数です。これは、多次元配列の要素を効率的に処理したい場合や、配列内の特定の要素の位置を特定したい場合に便利です。
NumPy Indexing Routines の詳細: property lib.Arrayterator.shape の役割
NumPy配列は、複数の次元を持つデータ構造です。各次元は、要素の集合を表します。要素は、整数インデックスを使用してアクセスできます。property lib. Arrayterator. shape は、Arrayterator オブジェクトの形状を取得するためのプロパティです。Arrayterator オブジェクトは、配列の要素を反復処理するために使用されます。
NumPy numpy.true_divide() 以外の方法
機能: NumPy 配列の要素間の真の除算を実行引数: x1: 配列またはスカラーx1: 配列またはスカラー戻り値: x1 と x2 の要素間の真の除算結果を含む配列x1 と x2 の要素間の真の除算結果を含む配列従来の除算演算子 / は、整数同士の除算では商を整数として返します。一方、numpy
NumPy chararray.startswith()とstartswith()の違い:Standard array subclassesにおける動作の違いを理解しよう!
この解説では、chararray. startswith()の使用方法と、Standard array subclassesにおける動作について詳しく説明します。chararray. startswith()は、文字列配列の各要素の先頭部分と比較対象となる文字列(prefix)が一致するかどうかを調べ、結果をBoolean型配列として返します。
Python でパスを連結: os.path.join() と njoin() の比較
njoin() 関数は、以下の役割を果たします。複数のパスを連結し、1つのパスにします。パス区切り文字を、プラットフォームに依存しない形式に変換します。相対パスと絶対パスの処理を行います。njoin() 関数は、以下の引数を受け取ります。path1: 最初のパス
NumPyの chebval2d 関数で2次元チェビシェフ多項式をマスターしよう!
形式: numpy. polynomial. chebyshev. chebval2d(c, x, y)入力: c: 2次元配列。各要素は、2次元チェビシェフ多項式の係数を表します。 x: 1次元配列または2次元配列。x軸の値を表します。
NumPy lib.format.write_array_header_2_0() 関数徹底解説
lib. format. write_array_header_2_0() 関数は、NumPy 配列をバイナリファイルに保存するためのヘッダー情報を書き込みます。この関数は NumPy バージョン 2.0 で導入され、バイナリファイルフォーマットのバージョン 2.0 を使用します。
Laguerre多項式と has_samewindow() 関数:NumPyモジュールで物理・数学問題を解決
NumPyのPolynomialsモジュールは、さまざまな種類の多項式を扱うための機能を提供します。Laguerre多項式は、物理学や数学でよく用いられる特殊な多項式の一種です。polynomial. laguerre. Laguerre