ブロードキャスト
形状の異なるndarrayオブジェクト同士で演算を行ったときの扱い。
サイズが同じ場合
code:python
A = numpy.array(1, 2], [3, 4)
B = numpy.array(5, 6], [7, 8)
これは次のように、要素毎に演算が行われる。
code:text
その1
2x2 とスカラ
code:python
A = numpy.array(1, 2], [3, 4)
b = numpy.array(5)
次のように考える。
code:text
これはbが2x2に展開され
code:text
要素毎に演算が行われる。
その2
2x2と1x2
code:python
A = numpy.array(1, 2], [3, 4)
次のように考える。
code:text
bが垂直方向に展開された結果2x2となり、
code:text
要素毎に演算が行われる。
2x2と2x1
code:python
A = numpy.array(1, 2], [3, 4)
b = numpy.array(5], [6)
次のように考える。
code:text
bが水平方向に展開された結果2x2となり、
code:text
要素毎に演算が行われる。
ここまで、Aとbが逆順であっても同様です。サイズが1の行列が展開され、同サイズにされたうえで要素毎に演算が行われます。
その3:できない例
code:python
A = numpy.array(1, 2], 3, 4, 5, 6, [7, 8) b = numpy.array(5, 6], [7, 8)
展開されるほうの行列の形状に1が含まれていなければならない。