ユニバーサル関数
Math ライブラリはさまざまな数値計算用の関数を提供するが、その機能は限定的であった。(参照:Mathが提供する関数の特徴)
NumPy や PyTorch ライブラリが提供する関数にはリストや配列のようなデータ集合を引数として与えることができる。この場合、関数処理は要素ごとに行われ、同じ形状の結果が戻り値として返される。このことを活用すると、繰り返し計算の例【Math】で示したプログラムは、
code:univ1.py
import numpy as np
x = np.array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
y = np.exp(-x)
print(y)
のようにループ処理を排して書くことができる。配列やリストのようなデータ集合を引数として受け取り、要素毎に計算を行い、結果を同じ形状の配列などで返す関数のことをユニバーサル関数という。
ループ処理はプログラムの実行速度を低下させる原因の1つであるので、ユニバーサル関数を用いた計算の一括化は高速化のための重要なテクニックとして位置づけられている。
補足
上の例はarange関数【numpy】を利用すると更に簡潔に記述できる。
code:univ2.py
import numpy as np
x = np.arange(10)
y = np.exp(-x)
print(y)
/icons/hr.icon
※ ブラウザのバックボタンで戻る
https://scrapbox.io/files/6726035b13a81b14ac9bc983.png