NumPy配列計算のブロードキャストについて

NumPy配列計算のブロードキャストは、
あ〜、そういうことかぁー。
便利な計算ツール作ったな〜〜、にくい!

ニューラルネットワークの動作を確認中。
先人の知恵に感激しまくり。
それを分かりやすく伝えるのが自分の役目。
あちらとこちらを繋ぐ役目。

>>> A=np.array([[0,0,0],[0,0,0],[0,0,0]])
>>> A.shape
(3, 3)
>>> B=np.array([1,2,3])
>>> B.shape
(3,)
>>> A+B
array([[1, 2, 3],
       [1, 2, 3],
       [1, 2, 3]])
>>> C=np.array([[1],[2],[3]])
>>> C.shape
(3, 1)
>>> A+C
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3]])
>>> D=np.array([[1,2,3]])
>>> D.shape
(1, 3)
>>> A+D
array([[1, 2, 3],
       [1, 2, 3],
       [1, 2, 3]])
>>> A+1
array([[1, 1, 1],
       [1, 1, 1],
       [1, 1, 1]])