怎么在python中输入矩阵,python 输入矩阵
最简单的解决方案
使用numpy.dot或a.dot(b)。请参考此处的文档。
a=NP.array ([ 5,1,3),
[ 1,1,1 ],
[ 1,2,1 ] )
b=NP.array ([ 1,2,3 ]).
打印点(b).
数组([ 16,6,8 ])
这是因为numpy数组通过元素而不是矩阵来处理标准操作*、-和/数组。而是尝试使用numpy.matrix *作为矩阵乘法。
其他解决方案
我知道还有其他选择:
如下所述,当使用python3.5时,@操作符按预期工作。
Print (a @ b))。
数组([ 16,6,8 ])
过度杀戮时,请使用numpy.einsum本文档为你提供了它是如何工作的,但说实话,直到你看了这个答案,自己摆弄了一下,你才完全明白如何使用它。
NP。Einsum(Ji,i-j),a,b)).
数组([ 16,6,8 ])
从2016年中期(numpy 1.10.1))开始,尝试使用Experimenting numpy . mat mul numpy . dot的功能与以下两个主要例外相同:没有标量乘法,但可以在矩阵堆栈中使用。
NP.matmul(a,b)).
数组([ 16,6,8 ])
Numpy.inner以同样的方式工作。Numpy.dot表示不同的矩阵矩阵和矩阵向量乘法的卡德尔乘法。(请看维基百科的内积和点积的区别是很常见的,或者它的SO答案是关于numpy的实现。)。
内部的.
数组([ 16,6,8 ])
# bewareusingformatrixmultiplicationthough!
b=a.T
NP.dot(a,b))。
数组([ 35,9,10 ],
[ 9,3,4 ],
[ 10,4,6 ] )
内部的.
数组([ 29,12,19 ],
[ 7,4,5 ],
[ 8,5,6 ] )
边缘很难选择。
如果kadyl(维数大于或等于1的数组)存在,numpy.tensordot可以使用axes=1和可选参数。
NP.tensordot(a,b,axes=1)).
数组([ 16,6,8 ])
如果有numpy.vdot复矩阵,请不要使用。将矩阵展平为一维数组,试图找到展平后的矩阵与向量之间的复共轭点积(因大小不匹配而失败)(n*mvs n)。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。