NumPyの主なユニバーサル関数

NumPyの多次元配列(numpy.ndarray)で、要素ごとに演算を行い、結果も同一サイズになる関数をユニバーサル関数といいます。

ユニバーサル関数以外の主な関数については、ユニバーサル関数以外の主な関数を参照ください。

主なユニバーサル関数

単項演算

名前

意味

positive

プラス(+)

negative

マイナス(-)

二項演算

名前

意味

add

加算(+)

subtract

減算(-)

multiply

乗算(*)

divide

true_divide と同じ

true_divide

余りなしの除算(/)

floor_divide

余りありの除算(//)

mod

余り(%)

remainder

mod と同じ

fmod

分母と同じ符号の余り(%)

power

べき乗(**)

bitwise_and

ビットごとのAND(&)

bitwise_or

ビットごとのOR(|)

bitwise_not

ビットごとのNOT(~)

bitwise_xor

ビットごとのXOR(^)

less

比較(<)

less_equal

比較(<=)

greater

比較(>)

greater_equal

比較(>=)

equal

比較(==)

not_equal

比較(!=)

三角関数

名前

意味

arccos

コサインの逆関数

arcsin

サインの逆関数

cos

コサイン関数

arctan2

タンジェントの逆関数

sin

サイン関数

tan

タンジェント関数

その他

名前

意味

abs

絶対値

absolute

abs と同じ

ceil

切り上げ

exp

指数関数

floor

切り捨て

fmax

要素ごとの最大(nan以外を選択 ※)

fmin

要素ごとの最小(nan以外を選択 ※)

isnan

nanかどうか

isfinite

nanでもinfでもない

isin

含まれるかどうか

isinf

infかどうか

log

底数eの対数関数

log2

底数2の対数関数

log10

底数10の対数関数

maximum

要素ごとの最大(nanがあればnanを選択)

minimum

要素ごとの最小(nanがあればnanを選択)

modf

整数部と小数部に分ける

rint

整数へ丸め

sign

符号(負: -1, 0: 0, 正: 1, nan: nan)

sqrt

平方根

square

平方

※ 全て nan の時だけ、nan を選びます。

max関連

NumPyに出てくるmax関連の関数はいくつかあります。

  • nanがある場合に、nanを選ぶかどうか

  • ユニバーサル関数かどうか

上記の観点で関数が変わります。場合分けしてみましょう。

|nanがあればnanを選択|nan以外を選択 :--|:--|:-- 2つの対象に対し要素ごと(ユニバーサル関数)|numpy.maximum|numpy.fmax 1つの対象に対し全体もしくは軸ごと|numpy.max|numpy.nanmax

nanmaxは、全てnanの時は、nanを返します。

nanの演算

nan は特殊で、(!=を除く)全ての演算がFalseになります。

print(np.nan >= 0)  # False
print(np.nan < 0)  # False
print(np.nan == np.nan)  # False
print(np.nan != np.nan)  # True
print(np.nan != 0)  # True
print(np.not_equal(np.nan, np.nan))  # != と同じでTrue

変数がnanかどうかを調べるには、numpy.isnanを使います。

確認

ユニバーサル関数か調べるのは、isinstance(numpy.sqrt, numpy.ufunc) のようにできます。

ただし、numpy.vectorizeで作成した関数は、Falseになります。

さらに詳しくは、Available ufuncsUniversal functionsを参照ください。