使用numpy.dot:
In [7]: a=np.array([1,2,3])
In [8]: b=np.array([4,5,6,])
In [9]: a.dot(b)
Out[9]: 32
如果您希望结果仍然是矩阵,请使用numpy.matrix:
In [239]: ma=matrix([1,2,3])
In [240]: ma
Out[240]: matrix([[1, 2, 3]])
In [241]: mb=matrix([4,5,6])
In [242]: mb.T
Out[242]:
matrix([[4],
[5],
[6]])
In [243]: ma*mb.T
Out[243]: matrix([[32]])
更新:
如果您的数组是二维数组,当您打印 a.shape 时其形状为 (m, n),您应该使用 .T 转置第二个数组,否则您会得到 ValueError: objects are not aligned:
In [30]: a
Out[30]: array([[1, 2, 3]])
In [31]: b
Out[31]: array([[4, 5, 6]])
In [32]: a.dot(b.T)
Out[32]: array([[32]])
In [33]: a.dot(b)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-33-9a1f5761fa9d> in <module>()
----> 1 a.dot(b)
ValueError: objects are not aligned