我可以使用Numpy得到矩阵行列式吗?

时间:2009-01-20 18:32:16

标签: python arrays numpy

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

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

2 个答案:

答案 0 :(得分:64)

您可以使用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

答案 1 :(得分:23)

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

在其中许多情况下,您可以使用numpy.linalg.slogdetsee documentation),它会返回:

(sign, logdet)

其中sign是符号,logdet是行列式的对数,这样您就可以计算行列式det

det = np.exp(logdet)