PythonでNumPyを使用するにあたり、ユニバーサル関数(universal function、ufunc)というものが出てきたのでまとめておきます。
目次
ユニバーサル関数とは
ユニバーサル関数(universal function、ufunc)は、ndarrayを対象に、要素ごとの捜査結果を戻す関数のこと。
スカラーを引数に指定して、スカラーを戻すような関数をベクトル対応し、ndarrayを引数に指定してndarrayを高速に戻すように拡張したものと、とらえることができる。
単項func
引数に一つのndarrayを取るものは単項funcと呼ばれる。
abs、fabs
各要素の整数、小数、複素数の絶対値を計算する。
fabsはabsの高速版で、対象を整数と少数に限定する。
sqrt
各要素の平方根を計算する。
arr ** 0.5と同等。
square
各要素の2乗を計算する。
arr ** 2と同等。
exp
各要素を指数として自然対数の底e(2.7818…)のべき乗(\(e^x\))を計算する。
\(\log\)、\(\log{_1}{_0}\)、\(\log{_2}\)、\(\log{_1}{_p}\)
各要素を真数とし、logは底eの自然対数を、\(\log{_1}{_0}\)は底10の常用対数を、\(\log{_2}\)は底2の対数を計算する。
\(\log{_1}{_p}\)は各要素に1を加えた数を真数として底eの自然対数を計算する。
sign
各要素の符号を返す。
正は1、ゼロは0、負は-1。
ceil
各要素の切り上げを計算する。
※各要素に対して、その数以上の最小の整数を計算する
floor
各要素の切り捨てを計算する。
※各要素に対して、その数以下の最小の整数を計算する
rint
各要素の丸め値を計算する。
※各要素に対して、その数に最も近い整数を計算する
※dtypeは変更されない
modf
要素ごとに整数部分と小数部分に分割し、整数部分からなる配列と、小数部分からなる配列を返す。
isnan
要素ごとにNaN(Not a Number)かどうかを判定した結果を格納した、真偽値配列を返す。
isfinite、isinf
isfinateは要素ごとに有限(infでなく、かつNaNでもない)かどうか、isinfは要素ごとに無限(inf)かどうかを判定した結果を格納した、真偽値配列を返す。
cos、cosh、sin、sinh、tan、tanh
各要素の余弦、双曲線余弦、正弦、双曲線正弦、正接、双曲線正接を計算する。
arrcos、arccosh、arcsin、arcsinh、arctan、arctanh
各要素の逆余弦、逆双曲線余弦、逆正弦、逆双曲線正弦、逆正接、逆双曲線正接を計算する。
logical_not
各要素の論理否定を返す。
※~arrと同等
二項func
引数に二つのndarrayを取るものは二項funcと呼ばれる。
add
配列の要素ごとの和を取る。
subtract
1番目の配列から2番目の配列のそれぞれの要素の差を取る。
multiply
配列の要素ごとの積を取る。
divide、floor_divide
divideは配列の要素ごとの商を取る。
floor_divideは商を取り、余り(小数点以下)を切り捨てる。
power
1番目の配列要素を底とし、2番目の配列要素でべき乗する。
maximum、fmax
配列の要素ごとの最大値を計算する。
要素がNaNの場合、maximumはNaNを選び、fmaxはNaNでない要素を選ぶ。
minimum、fmin
配列の要素ごとの最小値を計算する。
要素がNaNの場合、maximumはNaNを選び、fminはNaNでない要素を選ぶ。
mod
配列の要素ごとの剰余を計算する。
copysign
1番目の配列要素の値に、2番目の配列要素の符号を付ける。
greater、greater_equal、less、less_equal、equal、not_equal
配列の要素ごとの比較結果を真偽値で格納した配列を返す。
次の中置二項演算子と同等。
- greater:>
- greater_equal:>=
- less:<
- less_equal:<=
- equal:==
- not_equal:!=
logical_and、logical_or、logical_xor
配列の要素ごとに論理演算する。
次の中置二項演算子と同等。
- logical_and:&
- logical_or:|
- logical_xor:^