Thi*_*zKp 1 python numpy matrix matrix-multiplication
令矩阵a,b为[1,2,3,4],即(1×4)维.
在应用numpy.dot(a,b)时,结果为30而不是引发异常,即两个矩阵形状都没有对齐.
(mxn)矩阵如何与(mxn)矩阵相乘?numpy会自动转换一个矩阵来对齐它们的形状然后相乘吗?
In [59]: a = b = np.matrix([1,2,3,4])
In [60]: np.dot(a.T, b) # 1
Out[60]:
matrix([[ 1, 2, 3, 4],
[ 2, 4, 6, 8],
[ 3, 6, 9, 12],
[ 4, 8, 12, 16]])
In [63]: np.dot(a, b.T) # 2
Out[63]: matrix([[30]])
In [64]: np.dot(a, b) # 3
ValueError: shapes (1,4) and (1,4) not aligned: 4 (dim 1) != 1 (dim 0)
Run Code Online (Sandbox Code Playgroud)
更一般地说,如果X具有形状(m, n)并Y具有形状(n, p),则np.dot(X,Y)
返回形状的数组,(m, p)这是矩阵乘法的结果.
由于a.T具有形状(4, 1),并且b具有形状(1, 4),因此矩阵乘法的结果是形状的数组(4, 4).
由于a具有形状(1, 4),并且b.T具有形状(4, 1),因此矩阵乘法的结果是形状的数组(1, 1).
np.dot(a, b)由于形状的数组(1, 4)而(1, 4)不能进行矩阵乘法,因此会引发ValueError .NumPy从不自动转置轴.
| 归档时间: |
|
| 查看次数: |
3370 次 |
| 最近记录: |