NumPy配列を対象としたユニバーサル関数

ndarrayの要素ごとになにかを計算して結果を新しいndarrayにして返す関数をユニバーサル関数(universal function)という。他の言語でいうmap関数みたいなものを、 NumPyのndarrayに対して、三角関数とか、切り捨て処理とかの計算処理ごとに専用の関数にして高速化したもの。

関数の形をしていないが、ベクトル計算といって、四則演算もndarrayに対してできる。

ndarr1 = np.array([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])

print(ndarr1)
# 出力結果
# [ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1. ]

print(np.sin(ndarr1))
# 出力結果
# [ 0.          0.09983342  0.19866933  0.29552021  0.38941834  0.47942554
#   0.56464247  0.64421769  0.71735609  0.78332691  0.84147098]

# ベクトル計算
print(ndarr1 * 3)
# 出力結果
# [ 0.   0.3  0.6  0.9  1.2  1.5  1.8  2.1  2.4  2.7  3. ]

print(np.floor(ndarr1 * 3))
# 出力結果
# [ 0.  0.  0.  0.  1.  1.  1.  2.  2.  2.  3.]

関連

1つのndarrayを引数にとって、ndarrayを1つ返すユニバーサル関数

sqrt
平方根 \( \sqrt x \)
numpy.sqrt | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.sqrt.html
square
2乗 \( x^2 \) numpy.square | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.square.html
exp
指数関数 \( e^x \)
numpy.exp | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.exp.html
exp2
\( 2^x \)
numpy.exp2 | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.exp2.html
log
対数関数 \( \log x \)
numpy.log | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.log.html
log10
10を底とする対数関数 \( \log_{10} x = \frac{\log x}{\log 10} \)
numpy.log10 | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.log10.html
log2
2を底とする対数関数 \( \log_2 x = \frac{\log x}{\log 2} \)
numpy.log2 | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.log2.html
log1p
\( \log(1 + x) \)
numpy.log1p | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.log1p.html
cos
三角関数の余弦 \( \cos x \)
numpy.cos | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.cos.html
sin
三角関数の正弦 \( \sin x \)
numpy.sin | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.sin.html
tan
三角関数の正接 \( \tan x \)
numpy.tan | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.tan.html
cosh
双曲線関数の余弦 \( \cosh x \)
numpy.cosh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.cosh.html
sinh
双曲線関数の正弦 \( \sinh x \)
numpy.sinh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.sinh.html
tanh
双曲線関数の正接 \( \tanh x \)
numpy.tanh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.tanh.html
arccos
逆三角関数の余弦 \( \cos^{-1} x \)
numpy.arccos | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arccos.html
arcsin
逆三角関数の正弦 \( \sin^{-1} x \)
numpy.arcsin | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arcsin.html
arctan
逆三角関数の正接 \( \tan^{-1} x \)
numpy.arctan | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arctan.html
arccosh
逆双曲線関数の余弦 \( \cosh^{-1} x \)
numpy.arccosh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arccosh.html
arcsinh
逆双曲線関数の正弦 \( \sinh^{-1} x \)
numpy.arcsinh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arcsinh.html
arctanh
逆双曲線関数の正接 \( \tanh^{-1} x \)
numpy.arctanh | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.arctanh.html
fabs
絶対値 \( |x| \)
複素数のndarrayには対応していない。
abs
絶対値 \( |x| \)
複素数のndarrayにも対応している。たぶん absolute と同じだとは思うけど。
absolute
絶対値 \( |x| \)
複素数のndarrayにも対応している。たぶん abs と同じ。
numpy.absolute | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.absolute.html
sign
符号。正は +1.0, 負は -1.0, 00.0 を返す。結果は浮動小数点数のndarrayになる。
numpy.sign | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.sign.html
ceil
切り上げ。負は0に近い方に丸められる。
numpy.ceil | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.ceil.html
floor
切り捨て。負は0から遠い方に丸められる。
numpy.floor | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.floor.html
rint
近い整数にに丸める。2つの整数のちょうど中間の場合は偶数に方に丸める。例: 1.5 -> 2.0, 2.5 -> 2.0, 3.5 -> 4.0
numpy.rint | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.rint.html
isnan
NaN かどうかを判定して論理値のndarrayを返す
numpy.isnan | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.isnan.html
isfinite
有限(infでもNaNでもない)かどうかを判定して論理値のndarrayを返す
numpy.isfinite | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.isfinite.html
isinf
無限(inf)かどうかを判定して論理値のndarrayを返す
numpy.isinf | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.isinf.html

論理演算子と同等のもの

logical_not
論理値のndarrayを引数にとって、要素ごとに否定した論理値のndarrayを返す
numpy.logical_not | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.logical_not.html

1つのndarrayを引数にとって、ndarrayを2つタプルで返すユニバーサル関数

modf
小数部分と整数部分を2つのndarrayにわけてタプルで返す。返り値の2つのndarrayを足すともとのndarrayに戻る。整数部分は0に近い方に丸めた数になる。
numpy.modf | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.modf.html

2つのndarrayを引数にとって、ndarrayを1つ返すユニバーサル関数

add
加算(和) \( x + y \)
numpy.add | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.add.html
subtract
減算(差) \( x - y \)
numpy.subtract | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.subtract.html
multiply
乗算(積) \( x y \)
numpy.multiply | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.multiply.html
divide
除算(商) \( \frac{x}{y} \)
numpy.divide | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.divide.html
floor_divide
除算(商) \( \frac{x}{y} \)
整数に切り捨てられる。ただし要素の型は浮動小数点数のまま。結果が負の場合は絶対値の大きい方に丸められる
numpy.floor_divide | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.floor_divide.html
mod
剰余
numpy.mod | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.mod.html
power
べき乗 \( x^y \)
numpy.power | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.power.html
maximum
2つの要素を比較して大きい方を抽出。片方または両方がNaNの場合はNaNになる。 -> 最大値・最小値に関する関数
numpy.maximum | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.maximum.html
fmax
2つの要素を比較して大きい方を抽出。片方がNaNの場合は他方の値になる。 -> 最大値・最小値に関する関数
numpy.fmax | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.fmax.html
minimum
2つの要素を比較して小さい方を抽出。片方または両方がNaNの場合はNaNになる。 -> 最大値・最小値に関する関数
numpy.minimum | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.minimum.html
fmin
2つの要素を比較して小さい方を抽出。片方がNaNの場合は他方の値になる。 -> 最大値・最小値に関する関数
numpy.fmin | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.fmin.html
copysign
1つ目の配列の要素の符号を2つ目の配列の要素の符号にした配列にする
numpy.copysign | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.copysign.html

数値を比較して真偽値のndarrayを返すもの

greater
> の意味
numpy.greater | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.greater.html
greater_equal
>= の意味
numpy.greater_equal | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.greater_equal.html
less
< の意味
numpy.less | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.less.html
less_equal
<= の意味
numpy.less_equal | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.less_equal.html
equal
== の意味
numpy.equal | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.equal.html
not_equal
== の意味
numpy.not_equal | NumPy v1.9 Manual
http://docs.scipy.org/doc/numpy-1.9.1/reference/generated/numpy.not_equal.html

論理演算子と同等のもの

logical_and
論理積 &
logical_or
論理和 |
logical_xor
排他的論理和 ^
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。