scipy.sparse.linalg.svds¶

scipy.sparse.linalg.svds(A, k=6, ncv=None, tol=0, which='LM', v0=None, maxiter=None, return_singular_vectors=True)[source]

Compute the largest k singular values/vectors for a sparse matrix.

Parameters: A : {sparse matrix, LinearOperator} Array to compute the SVD on, of shape (M, N) k : int, optional Number of singular values and vectors to compute. ncv : int, optional The number of Lanczos vectors generated ncv must be greater than k+1 and smaller than n; it is recommended that ncv > 2*k Default: min(n, 2*k + 1) tol : float, optional Tolerance for singular values. Zero (default) means machine precision. which : str, [‘LM’ | ‘SM’], optional Which k singular values to find: ‘LM’ : largest singular values ‘SM’ : smallest singular values New in version 0.12.0. v0 : ndarray, optional Starting vector for iteration, of length min(A.shape). Should be an (approximate) right singular vector if N > M and a right singular vector otherwise. Default: random New in version 0.12.0. maxiter : int, optional Maximum number of iterations. New in version 0.12.0. return_singular_vectors : bool or str, optional True: return singular vectors (True) in addition to singular values. New in version 0.12.0. “u”: only return the u matrix, without computing vh (if N > M). “vh”: only return the vh matrix, without computing u (if N <= M). New in version 0.16.0. u : ndarray, shape=(M, k) Unitary matrix having left singular vectors as columns. If return_singular_vectors is “vh”, this variable is not computed, and None is returned instead. s : ndarray, shape=(k,) The singular values. vt : ndarray, shape=(k, N) Unitary matrix having right singular vectors as rows. If return_singular_vectors is “u”, this variable is not computed, and None is returned instead.

Notes

This is a naive implementation using ARPACK as an eigensolver on A.H * A or A * A.H, depending on which one is more efficient.

Previous topic

scipy.sparse.linalg.lobpcg

Next topic

scipy.sparse.linalg.splu