Lar*_*rry 17 python numpy vector matrix matrix-multiplication
在numpy操作中,我有两个向量,假设向量A是4X1,向量B是1X5,如果我做AXB,它应该得到一个大小为4X5的矩阵.
但我尝试了很多次,进行了多种重塑和转置,它们都会引发错误,说不对齐或返回单个值.
我应该如何得到我想要的矩阵的输出产品?
Die*_*Epp 22
只要矢量具有正确的形状,正常的矩阵乘法就可以工作.请记住,*在Numpy中是元素乘法,矩阵乘法可用numpy.dot()(或与@运算符一起使用,在Python 3.5中)
>>> numpy.dot(numpy.array([[1], [2]]), numpy.array([[3, 4]]))
array([[3, 4],
[6, 8]])
Run Code Online (Sandbox Code Playgroud)
这被称为"外部产品".您可以使用普通向量来获取它numpy.outer():
>>> numpy.outer(numpy.array([1, 2]), numpy.array([3, 4]))
array([[3, 4],
[6, 8]])
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用的是 numpy.
首先,确保有两个向量。例如,vec1.shape = (10, )和vec2.shape = (26, );在numpy中,行向量和列向量是同一件事。
第二,你愿意res_matrix = vec1.reshape(10, 1) @ vec2.reshape(1, 26) ;。
最后,你应该有:res_matrix.shape = (10, 26).
numpy 文档说它将弃用np.matrix(),所以最好不要使用它。
| 归档时间: |
|
| 查看次数: |
21204 次 |
| 最近记录: |