Can I get the matrix determinant using Numpy?
You can use numpy.linalg.det
to compute the determinant of an array:
In [1]: import numpy
In [2]: M = [[1, 2], [3, 4]]
In [3]: print numpy.linalg.det(M)
Out[3]: -2.0000000000000004
For large arrays underflow/overflow may occur when using numpy.linalg.det
, or you may get inf
or -inf
as an answer.
In many of these cases you can use numpy.linalg.slogdet
(see documentation):
sign, logdet = np.linalg.slogdet(M)
where sign
is the sign and logdet
the logarithm of the determinant. You can calculate the determinant simply by:
det = np.exp(logdet)
For sparse matrices (2-D arrays), I highly recommend another approach based on LU decomposition.