私はnumpyを学んでいて、ブロードキャストについて少し混乱しています.これが私のセットアップです. 私は2つの行列を持っています
>>> y=np.array([1,2,3])
>>> v = np.array([1,2,3])
>>> r=np.reshape(v, (3, 1))
したがって、r は (3*1) 行列であり、y は形状が (3,) であるランク 1 の行列です。
y.dot(r) を実行すると、14 が得られます。numpy が y にブロードキャストを適用すると仮定すると、(1*3) になり、r(3*1) でドット積を実行するため、結果の行列は 1* になります。 1.
ただし、r.dot(y) を実行すると、エラーがスローされます。ここで同じことをしないのはなぜですか?y(1*3) と r を (3*1) にする必要があり、3*3 行列を与える必要があります。この推論のどこが間違っているのでしょうか?