Truncated SVD by implicitly restarted Lanczos bidiagonalization for Numpy!
irlb: A fast and memory-efficient method for estimating a few largest signular values and corresponding singular vectors of very large matrices.
Adapted from the algorithm by Jim Baglama and Lothar Reichel: Augmented Implicitly Restarted Lanczos Bidiagonalization Methods, J. Baglama and L. Reichel, SIAM J. Sci. Comput. 2005.
There are several options for installing the irlbpy package. The easiest
is to simply pip install
the code (either into your system
site-packages or virtualenv
with the command:
pip install -e git+https://github.com/bwlewis/irlbpy.git#egg=irlb
Otherwise, if you have downloaded the code you can install the package locally by executing the following commands from the project's home directory:
python setup.py sdist pip install dist/irlbpy-0.1.0.tar.gz
S = irlb(A, n, [tol=0.0001 [, maxit=50]])
Where, A is a
double-precision-valued matrix, n is the number of singular values and
corresponding singular values to compute, tol is an optional convergence
tolerance parameter that controls the accuracy of the estimated singular
values, and maxit is an optional limit on the maximum number of Lanczos
iterations.
The returned triple S contains the matrix of left singular vectors, a
vector of singular values, and the matrix of right singular vectors,
respectively, such that: A.dot(S[2]) - S[0]*S[1]
is small.