[SciPy-Dev] restarting the discussion about sparse SVD

David Cournapeau cournape@gmail....
Thu Mar 18 23:41:15 CDT 2010

On Thu, Mar 18, 2010 at 1:55 PM, David Warde-Farley <dwf@cs.toronto.edu> wrote:
> A friend of mine yesterday was a bit shocked/annoyed when he realized
> there was no way currently in SciPy to compute the SVD of a sparse
> matrix.

It is actually not true anymore, I have added a simple sparse svd
based on arpack in scipy.sparse.linalg.eigen.arpack, but there is no
support for complex, etc...

> - I remember hearing that ARPACK contained a sparse SVD routine but I
> can't seem to find mention of it in the docs.

As far as I could see, ARPACK itself does not have SVD: the simple
example of computing SVD in arpack sources uses the eigensolver on
A'A. There are better techniques to do SVD on sparse matrix (PROPACK,
based on tri-diagonalization without intermediate A'A).

> - It also looks like the code in Divisi ( http://
> divisi.media.mit.edu ) would be helpful, and looking in the archives
> it looks like the authors may be receptive to relicensing bits of it
> for use in SciPy.

I think ARPACK is better (uses more recent techniques than SVDPACK, as
used in Divisi). The other technique (gradient-based) is not a "real"
SVD, but could still be useful,


More information about the SciPy-Dev mailing list