Skip to main content
`Ctrl`+`K`
scipy.linalg.interpolative.

# estimate_rank

scipy.linalg.interpolative.estimate_rank(A, eps, rng=None)

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

    epsfloat

      Relative error for numerical rank definition.

    rng `numpy.random.Generator`, optional

      Pseudorandom number generator state. When rng is None, a new `numpy.random.Generator` is created using entropy from the operating system. Types other than `numpy.random.Generator` are passed to `numpy.random.default_rng` to instantiate a `Generator`. If `rand` is `False`, the argument is ignored.

  Returns:
    int

      Estimated matrix rank.