NumPy入門 ユニバーサル関数とは

ユニバーサル関数とは

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のそれぞれの加算した値が返されていることが確認できます。