[SciPy-user] spare matrices

Eric Friedman ejf27@cornell....
Tue Mar 17 06:11:14 CDT 2009


Nathan Bell <wnbell <at> gmail.com> writes:

> 
> On Mon, Mar 16, 2009 at 10:12 PM, Eric Friedman <ejf27 <at> cornell.edu> wrote:

> 
> Yes, scipy.sparse should be competitive with MATLAB in terms of
> performance.  For instance, I use scipy.sparse with PyAMG[1] to solve
> linear systems with millions of unknowns.  With such large matrices
> you'll want to primarily use the COO, CSR, and CSC formats, whose
> operations are implemented in C++.  You'll want to avoid using
> lil_matrix and dok_matrix to construct matrices, as they are about 100
> times slower than the alternatives.  Here's a example that highlights
> the difference[2].
> 

> [2]
http://www.scipy.org/SciPyPackages/Sparse#head-be8a0be5d0e44c4d59550d64fb0173508073c36e
> 

Excellent -- thanks.  A few more newbie questions:

1)How do I find the detailed descriptions of functions like coo? 
Is there a good
document (which I haven't been able to find) or do I need 
to look inside the code?
For example, I don't see how to access individual elements in a coo.
Also, I'd like to be able to pull out a submatrix from a 
subset of the rows and
find the set of rows which are nonzero.

2) I tried linsolve.spsolve and it says I should use 
sparse.linalg.dsolve but
when I try that directly I can't get it to work. 
Also, is there any
documentation on dsolve or spsolve? My matrix is 
singular, but the matrix
equation is still solvable -- can it deal with that?

thanks again,
Eric









More information about the SciPy-user mailing list