-Python- Numpy 配列の四則演算

形状が同じ同士には四則演算が適用できます.その結果は要素ごとの四則演算となります.
計算結果のデータ型は大きい方に一致します.
以下に例を示します.

>>> import numpy as np
>>> A = np.array([[1, 2, 3], [4, 5, 6]])
>>> B = np.array([[7, 8, 9], [10, 11, 12]])
>>> print(A)
[[1 2 3]
 [4 5 6]]
>>> print(B)
[[ 7  8  9]
 [10 11 12]]
>>> print(A + B) # 和
[[ 8 10 12]
 [14 16 18]]
>>> print(A - B) # 差
[[-6 -6 -6]
 [-6 -6 -6]]
>>> print(A * B) # 積
[[ 7 16 27]
 [40 55 72]]
>>> print(B / A) # 商
[[7.  4.  3. ]
 [2.5 2.2 2. ]]
 
積に関して,* を使っても行列積にはならないことに注意が必要です.
行列積を求めるにはnumpy.dot(A, B),または A.dot(B)とします.


四則演算では,配列のサイズが完全に一致していなくても,片方の次元の長さが1または0の場合,同じ値によって自動的にサイズ拡張されてから計算されます.

>>> C = np.array(1, 2, 3)
>>> print(C)
>>> print(A + C) # Cの次元は自動的に拡張される
[[2 4 6]
 [5 7 9]]
>>> c = np.array([1, 2, 3])
>>> print(A + c) # (3,) -> (1, 3) -> (2, 3)と拡張される

[[2 4 6]
 [5 7 9]]