加速numpy矩阵求逆

4

我正在使用Numpy/Scipy来求解一个20k矩阵的逆,但速度很慢。 我已经尝试过以下方法:

(1) M_inv = M.I

(2) Ident = np.Identity(len(M))
    M_inv = scipy.linalg.solve(M, Ident)

(3) M_inv = scipy.linglg.inv(M)

但是没有看到任何加速。

还有其他方式可以加速吗?

1个回答

8

这是一个庞大的矩阵,倒置它将会很慢。以下几种选择:

  • 使用链接到英特尔MKL(例如Enthought分发版或您自己编译的版本)的numpy,应该比链接到标准BLAS/ATLAS的版本更快。
  • 如果您的矩阵足够稀疏,请使用scipy.linalg.sparse。(如果只有少数几个零,则此方法可能较慢。)
  • 确定您是否真的需要明确表示倒置的矩阵才能完成您试图使用它做的事情 - 通常您可以在不明确倒置矩阵的情况下完成任务,但如果不知道您正在处理什么矩阵,则很难判断。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接