ユニバーサル関数とは
NumPyの配列、ndarrayの全要素に対して、要素ごとに演算等の処理を行い、結果をndarrayで返す関数をユニバーサル関数と呼びます。
組込みのmap関数を併用した場合と同じような作用をイメージしていただいてもかまいません。
ユニバーサル関数は省略してufuncと呼ぶこともあります。
予めNumPyライブラリで提供されているものに加え、独自実装することも可能です。
ユニバーサル関数の例
Numpyライブラリで提供されているユニバーサル関数の例をいくつか挙げてみましょう。
sin 正弦を返す
1つのndarrayの各値に対し、正弦を返す関数です。
import numpy as np x = np.arange(1, 10) # array([1, 2, 3, 4, 5, 6, 7, 8, 9]) np.sin(x) # array([ 0.84147098, 0.90929743, 0.14112001, -0.7568025 , -0.95892427, # -0.2794155 , 0.6569866 , 0.98935825, 0.41211849]) #
引数にndarrayを指定すると、それぞれの正弦の値が格納されたndarrayが返されていることが確認できます。
add 足し算
一方で2つのndarrayを引数にそれぞれの演算結果を返すユニバーサル関数もあります。基本的なものとしてaddが挙げられます。名前の通り、足し算の結果を返すユニバーサル関数です。
x = np.array([1, 2, 3]) # array([1, 2, 3]) y = np.array([4, 5, 6]) # array([4, 5, 6]) np.add(x, y) # array([5, 7, 9]) #
2つの配列x,yのそれぞれの加算した値が返されていることが確認できます。