假设我们想要计算矩阵和列向量的点积:
所以在Numpy/Python中我们走了:
a=numpy.asarray([[1,2,3], [4,5,6], [7,8,9]]) b=numpy.asarray([[2],[1],[3]]) a.dot(b)
结果是:
数组([[13],[31],[49]])
到目前为止,这么好,但为什么这也有效?
b=numpy.asarray([2,1,3]) a.dot(b)
结果是:
数组([13,31,49])
我希望[2,1,3]是行向量(需要转置才能应用点积),但Numpy似乎默认将数组视为列向量(在矩阵乘法的情况下)?
这是如何运作的?
编辑:
为什么:
b=numpy.asarray([2,1,3]) b.transpose()==b
因此矩阵点矢量数组确实有效(因此它将其视为列向量),但是其他操作(转置)不起作用.这不是真的一致设计不是吗?