Python 是否使用numpy';s点或matmul函数
我需要执行以下两个操作:Python 是否使用numpy';s点或matmul函数,python,numpy,matrix-multiplication,numpy-ndarray,Python,Numpy,Matrix Multiplication,Numpy Ndarray,我需要执行以下两个操作: 通过将n×n矩阵A倒置,求解Ax=b,以及 使用幂次迭代(即,将当前向量r重复乘以A)求解r=Ar,如PageRank算法 我的问题是:当计算矩阵向量积A^{-1}b或矩阵向量积Ar时,使用numpy.dot或numpy.matmul是否更好?(我知道在更高的维度上可能存在差异,但我的问题仅适用于A是2D数组而b,r是向量的情况。)来自fornp.dot: 两个阵列的点积。具体地说,如果a和b都是二维数组,则是矩阵乘法,但使用matmul或a@b则是 首选 因此
- 通过将
倒置,求解n×n矩阵A
,以及Ax=b
- 使用幂次迭代(即,将当前向量r重复乘以A)求解
,如r=Ar
算法PageRank
A^{-1}b
或矩阵向量积Ar
时,使用numpy.dot
或numpy.matmul
是否更好?(我知道在更高的维度上可能存在差异,但我的问题仅适用于A
是2D数组而b
,r
是向量的情况。)来自fornp.dot
:
两个阵列的点积。具体地说,如果a和b都是二维数组,则是矩阵乘法,但使用matmul或a@b则是
首选
因此,基本上对于您的情况来说,这并不重要,尽管根据文档,首选matmul
另外,由于您的一个阵列是一维的,因此:
如果第二个参数是1-D,则通过添加
一个1到它的尺寸。在矩阵乘法之后,附加1
删除
以及:
matmul在两个重要方面与dot不同:
不允许使用标量乘法,请使用*代替。矩阵堆栈是
将矩阵作为元素一起广播,尊重
签名
因此,它们在您的情况下也会起同样的作用,但我同意numpy doc关于使用
matmul
进行2和1d的建议,这并不重要。他们也这样做。一个是操作员版本,一些添加了ufunc
bells-n-whistles,另一个是方法版本(以及更短的名称)。