skip to navigation
skip to content

sparsesvd 0.1.8

Python module that wraps SVDLIBC, a library for sparse Singular Value Decomposition.

Latest Version: 0.2.2

sparsesvd is a Python wrapper around the SVDLIBC library by Doug Rohde, which is itself based on Michael Berry’s SVDPACK.

sparsesvd uses SciPy’s sparse CSC (Compressed Sparse Column) matrix format as input to SVD. This is the same format used internally by SVDLIBC, so that no extra data copies need to be made by the Python wrapper (memory-efficient).


In order to install sparsesvd, you’ll need NumPy and Scipy, two Python packages for scientific computing. You can get them from

The simple way to install sparsesvd is:

sudo easy_install -U sparsesvd

Or, if you have instead downloaded and unzipped the source tar.gz package, you’ll need to run:

python test
sudo python install

This version has been tested under Python 2.5 and 2.6, but should run on any 2.5 <= Python < 3.0.


The sparsesvd module offers a single function, sparsesvd, which accepts two parameters. One is a sparse matrix in the scipy.sparse.csc_matrix format, the other is the number of requested factors (an integer).

>>> import numpy, scipy.sparse
>>> from sparsesvd import sparsesvd
>>> mat = numpy.random.rand(200, 100) # create a random matrix
>>> smat = scipy.sparse.csc_matrix(mat) # convert to sparse CSC format
>>> ut, s, vt = sparsesvd(smat, 100) # do SVD, asking for 100 factors
>>> assert numpy.allclose(mat,,, vt)))

Original wrapper by Lubos Kardos, package updated and maintained by Radim Rehurek. For an application of sparse SVD to Latent Semantic Analysis, see the gensim package.

You can use this code under the simplified BSD license.

File Type Py Version Uploaded on Size
sparsesvd-0.1.8.tar.gz (md5) Source 2012-05-23 35KB