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

39 python arrays numpy

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

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

xyz*_*xyz 66

您可以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
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法在没有舍入误差的情况下获得确定性? (2认同)

Sau*_*tro 25

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

在许多这种情况下,您可以使用numpy.linalg.slogdet(参见文档),它返回:

(sign, logdet)
Run Code Online (Sandbox Code Playgroud)

sign符号和logdet行列式的对数在哪里,这样你就可以计算行列式det:

det = np.exp(logdet)
Run Code Online (Sandbox Code Playgroud)