Skip to main content

sparsesvd – Sparse Singular Value Decomposition

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).

For a more scalable implementation of truncated SVD, see the gensim package (contains an incremental, online SVD algorithm).

Installation

In order to install sparsesvd, you’ll need NumPy, Scipy and Cython.

Install sparsesvd and its dependencies with:

pip install numpy
pip install scipy
pip install cython
pip install sparsesvd

In case of problems, see http://www.scipy.org/Download for instructions on installing SciPy on various platforms.

If you have instead downloaded and unzipped the source tar.gz package, run:

python setup.py test
sudo python setup.py install

This version has been tested under Python 2.6 and 3.2, but should run on any later versions of both 2.x and 3.x series.

Documentation

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 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, numpy.dot(ut.T, numpy.dot(numpy.diag(s), vt)))

Original wrapper by Lubos Kardos, package updated and maintained by Radim Rehurek, Cython and Python 3.x port by Alejandro Pulver. For an application of sparse SVD to Latent Semantic Analysis, see the gensim package.

You can use this code under the simplified BSD license.

Metadata

Release files for sparsesvd 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sparsesvd 0.2.2
File Size Uploaded
sparsesvd-0.2.2.tar.gz 36.6 kB Details

Release files / sparsesvd-0.2.2.tar.gz

Download URL sparsesvd-0.2.2.tar.gz
Size 36.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3f775ac22a35764dad97c0d83b2cb47caa46fd11d0f6a9eb1883a0e07dd88df8
BLAKE2b-256 checksum
How to use checksums
65d9c2545987871e27cad5969799a1d45073321a2904ac4dcb18bc0f1fe16ecc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page