【问题标题】:Can I get the matrix determinant using Numpy?我可以使用 Numpy 获得矩阵行列式吗?
【发布时间】:2010-10-02 12:39:18
【问题描述】:

我在 Numpy 的手册中看到有函数 det(M) 可以计算行列式。但是,我在 Numpy 中找不到 det() 方法。

顺便说一下,我使用的是 Python 2.5。 Numpy 应该没有兼容性问题。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    您可以使用numpy.linalg.det 来计算数组的行列式:

    In [1]: import numpy
    
    In [2]: M = [[1, 2], [3, 4]]
    
    In [3]: print numpy.linalg.det(M)
    Out[3]: -2.0000000000000004
    

    【讨论】:

    • 有没有办法在没有舍入错误的情况下获得确定值?
    【解决方案2】:

    对于大型数组,使用numpy.linalg.det 时可能会出现下溢/溢出,或者您可能会得到inf 或-inf 作为答案。

    在许多情况下,您可以使用numpy.linalg.slogdet (see documentation):

    sign, logdet = np.linalg.slogdet(M)
    

    其中sign 是符号,logdet 是行列式的对数。您可以简单地通过以下方式计算行列式:

    det = np.exp(logdet)
    

    对于稀疏矩阵(二维数组),我强烈推荐another approach based on LU decomposition。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      相关资源
      最近更新 更多