【问题标题】:Speed up numpy matrix inverse加速numpy矩阵逆
【发布时间】:2012-05-12 04:11:27
【问题描述】:

我正在使用 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)

但没有看到任何加速。

还有其他方法可以加快速度吗?

【问题讨论】:

    标签: performance numpy matrix linear-algebra matrix-inverse


    【解决方案1】:

    这是一个很大的矩阵,反转它会很慢。一些选项:

    • 使用与英特尔 MKL 关联的 numpy(例如 Enthought 发行版,或者您可以自己编译),这应该比与标准 BLAS/ATLAS 关联的更快。
    • 如果您的矩阵足够稀疏,请使用scipy.linalg.sparse。 (不过,如果只有几个零,这可能会更慢。)
    • 弄清楚你是否真的需要一个逆矩阵的显式表示来做你想做的任何事情——通常你可以在不显式反转它的情况下逃脱,但如果不知道它是什么就很难说你正在处理这个矩阵。

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 1970-01-01
      • 2015-11-13
      • 2014-03-17
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      相关资源
      最近更新 更多