我在Numpy的手册中读到有函数det(M)
可以计算行列式。但是,我在Numpy中找不到det()
方法。
顺便说一句,我使用的是Python 2.5。 Numpy应该没有兼容性问题。
答案 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.slogdet
(see documentation),它会返回:
(sign, logdet)
其中sign
是符号,logdet
是行列式的对数,这样您就可以计算行列式det
:
det = np.exp(logdet)