<p>Here are some references I provided as part of an answer <a href="https://math.stackexchange.com/a/680875/66696">here</a>.
I think they address the actual problem you are trying to solve:</p>
<ul>
<li><a href="http://www.shogun-toolbox.org/static/notebook/current/logdet.html" rel="nofollow noreferrer">notes</a> for an implementation in the Shogun library</li>
<li>Erlend Aune, Daniel P. Simpson: <em>Parameter estimation in high dimensional Gaussian distributions</em>, particularly section 2.1 (<a href="http://arxiv.org/abs/1105.5256" rel="nofollow noreferrer">arxiv:1105.5256</a>)</li>
<li>Ilse C.F. Ipsen, Dean J. Lee: <em>Determinant Approximations</em> (<a href="http://arxiv.org/abs/1105.0437" rel="nofollow noreferrer">arxiv:1105.0437</a>)</li>
<li>Arnold Reusken: <em>Approximation of the determinant of large sparse symmetric positive definite matrices</em> (<a href="http://arxiv.org/abs/hep-lat/0008007" rel="nofollow noreferrer">arxiv:hep-lat/0008007</a>)</li>
</ul>
<p>Quoting from the Shogun notes:</p>
<blockquote>
<p>The usual technique for computing the log-determinant term in the likelihood expression relies on Cholesky factorization of the matrix, i.e. Σ=LLT, (L is the lower triangular Cholesky factor) and then using the diagonal entries of the factor to compute log(det(Σ))=2∑ni=1log(Lii). However, for sparse matrices, as covariance matrices usually are, the Cholesky factors often suffer from fill-in phenomena - they turn out to be not so sparse themselves. Therefore, for large dimensions this technique becomes infeasible because of a massive memory requirement for storing all these irrelevant non-diagonal co-efficients of the factor. While ordering techniques have been developed to permute the rows and columns beforehand in order to reduce fill-in, e.g. approximate minimum degree (AMD) reordering, these techniques depend largely on the sparsity pattern and therefore not guaranteed to give better result.</p>
<p>Recent research shows that using a number of techniques from complex analysis, numerical linear algebra and greedy graph coloring, we can, however, approximate the log-determinant up to an arbitrary precision [Aune et. al., 2012]. The main trick lies within the observation that we can write log(det(Σ)) as trace(log(Σ)), where log(Σ) is the matrix-logarithm.</p>
</blockquote>
How to compute scipy sparse matrix determinant without turning it to dense?
<p>I am trying to figure out the fastest method to find the determinant of sparse symmetric and real matrices in python. using scipy <code>sparse</code> module but really surprised that there is no determinant function. I am aware I could use LU factorization to compute determinant but don't see a easy way to do it because the return of <code>scipy.sparse.linalg.splu</code> is an object and instantiating a dense L and U matrix is not worth it - I may as well do <code>sp.linalg.det(A.todense())</code> where <code>A</code> is my scipy sparse matrix. </p>

<p>I am also a bit surprised why others have not faced the problem of efficient determinant computation within scipy. How would one use <code>splu</code> to compute determinant? </p>

<p>I looked into <code>pySparse</code> and <code>scikits.sparse.chlmod</code>. The latter is not practical right now for me - needs package installations and also not sure sure how fast the code is before I go into all the trouble. 
Any solutions? Thanks in advance. </p>