SciPy

scipy.linalg.interpolative.estimate_rank

scipy.linalg.interpolative.estimate_rank(A, eps)[source]

Estimate matrix rank to a specified relative precision using randomized methods.

The matrix A can be given as either a numpy.ndarray or a scipy.sparse.linalg.LinearOperator, with different algorithms used for each case. If A is of type numpy.ndarray, then the output rank is typically about 8 higher than the actual numerical rank.

Parameters:
A : numpy.ndarray or scipy.sparse.linalg.LinearOperator

Matrix whose rank is to be estimated, given as either a numpy.ndarray or a scipy.sparse.linalg.LinearOperator with the rmatvec method (to apply the matrix adjoint).

eps : float

Relative error for numerical rank definition.

Returns:
int

Estimated matrix rank.