-Numpy- ブロードキャスト

Numpyでは,特定の条件を満たしていれば違う形状の配列同士でも演算を行うことができます.この機能はブロードキャストと呼ばれています.

例を以下に示します.2つの配列を考えます(2次元配列はイメージしやすくするために,途中で改行して数値が格子状に並ぶようにしています).

>>> a = np.array([[1, 1], 
...               [1, 1]])
>>> b = np.array([1, 2])
>>> 
 
上記の2つの配列a, b は次元が違いますが,ブロードキャストにより演算を行うことが可能です.
>>> print(a + b)
[[2 3]
 [2 3]]
>>> 
この例では,1次元配列が縦方向に拡張されることにより,同じ形状を有する2次元配列同士の演算が行われたことになります.
 
続いて,形状の違う配列同士の足し算の例を示します.
>>> c = np.array([[1], 
...               [2]])
>>> print(a + c)
[[2 2]
 [3 3]]
>>> 
c は形状が (2, 1) の2次元配列です.これを,形状が (2, 2) の2次元配列 a と足し合わせています.
この演算においても2つの配列の形状は異なりますが,ブロードキャストにより演算が可能です(配列が横方向に拡張されたことによって,配列の形状が一致し演算が可能になっています).
 
以上のように,ある方向に拡張することで配列の形状が一致すれば,ブロードキャストによって形状が異なる配列同士でも演算が可能になります.