我在 Numpy 的手册中读到有det(M)可以计算行列式的函数。det()但是,我在 Numpy 中找不到该方法。
顺便说一句,我使用 Python 2.5。Numpy 应该没有兼容性问题。
您可以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
对于大型数组,使用 时可能会发生下溢/溢出numpy.linalg.det,或者您可能会得到inf或-inf作为答案。
在许多这些情况下,您可以使用numpy.linalg.slogdet(请参阅文档):
sign, logdet = np.linalg.slogdet(M)
其中sign是行列式的符号和logdet对数。您可以简单地通过以下方式计算行列式:
det = np.exp(logdet)
对于稀疏矩阵(二维数组),我强烈推荐另一种基于 LU 分解的方法。