[numpy] numpy の基本演算

numpy の Broadcasting

numpy の ndarray の基本演算を紹介する.

要素ごとの加算

numpy.add(x, y) または x + y で要素ごとの加算を行える.

>>> a = np.array([[1, 1, 1],
                  [2, 2, 2]])
>>> b = np.array([[1, 1, 1],
                  [2, 2, 2]])
>>> np.add(a, b)
array([[2, 2, 2],
       [4, 4, 4]])

要素ごとの減算

numpy.subtract(x, y) または x – y で要素ごとの減算を行える.

>>> a = np.array([[3, 3, 3],
                  [2, 2, 2]])
>>> b = np.array([[1, 1, 1],
                  [1, 1, 1]])
>>> np.subtract(a, b)
array([[2, 2, 2],
       [1, 1, 1]])

要素ごとの乗算

numpy.multiply(x, y) または x * y で要素ごとの乗算を行える.

>>> a = np.array([[1, 2, 3],
                  [1, 2, 3]])
>>> b = np.array([[3, 3, 3],
                  [2, 2, 2]])
>>> np.multiply(a, b)
array([[3, 6, 9],
       [2, 4, 6]])

要素ごとの除算

Python 2 と Python 3 で除算の挙動が異なるため,注意する必要がある.
Python 2 でも from __future__ import division とした場合は Python 3 の挙動になる.

演算 Python 2 Python 3
numpy.divide(x, y) または x / y (Python 2) 余りを切り捨てる 余りを切り捨てない
numpy.true_divide(x, y) または x / y (Python 3) 余りを切り捨てる 余りを切り捨てる
numpy.floor_divide(x, y) または x // y (Python 3) 余りを切り捨てる 余りを切り捨てる
>>> a = np.array([[2, 4, 6],
                  [8, 10, 12]])
>>> b = np.array([[2, 2, 2],
                  [2, 2, 2]])
>>> np.divide(a, b)
array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]])
>>> np.floor_divide(7, 3)
2
>>> np.floor_divide([1., 2., 3., 4.], 2.5)
array([ 0.,  0.,  1.,  1.])

符号反転

numpy.negative(x) または -x で符号を反転する.

>>> np.negative([1., -1.])
array([-1.,  1.])

要素ごとのべき乗

numpy.negative(x) または -x で符号を反転する.

>>> a = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
>>> b = [1.0, 2.0, 3.0, 3.0, 2.0, 1.0]
>>> np.power(a, b)
array([  1.,   4.,  27.,  64.,  25.,   6.])

コメントを残す

メールアドレスが公開されることはありません。