Sparse linear algebra (scipy.sparse.linalg)#

Abstract linear operators#

LinearOperator(*args, **kwargs)

Common interface for performing matrix vector products


Return A as a LinearOperator.

Matrix Operations#


Compute the inverse of a sparse matrix


Compute the matrix exponential using Pade approximation.

expm_multiply(A, B[, start, stop, num, ...])

Compute the action of the matrix exponential of A on B.

matrix_power(A, power)

Raise a square matrix to the integer power, power.

Matrix norms#

norm(x[, ord, axis])

Norm of a sparse matrix

onenormest(A[, t, itmax, compute_v, compute_w])

Compute a lower bound of the 1-norm of a sparse matrix.

Solving linear problems#

Direct methods for linear equation systems:

spsolve(A, b[, permc_spec, use_umfpack])

Solve the sparse linear system Ax=b, where b may be a vector or a matrix.

spsolve_triangular(A, b[, lower, ...])

Solve the equation A x = b for x, assuming A is a triangular matrix.


Return a function for solving a sparse linear system, with A pre-factorized.



Select default sparse direct solver to be used.

Iterative methods for linear equation systems:

bicg(A, b[, x0, rtol, atol, maxiter, M, ...])

Use BIConjugate Gradient iteration to solve Ax = b.

bicgstab(A, b[, x0, rtol, atol, maxiter, M, ...])

Use BIConjugate Gradient STABilized iteration to solve Ax = b.

cg(A, b[, x0, rtol, atol, maxiter, M, callback])

Use Conjugate Gradient iteration to solve Ax = b.

cgs(A, b[, x0, rtol, atol, maxiter, M, callback])

Use Conjugate Gradient Squared iteration to solve Ax = b.

gmres(A, b[, x0, rtol, atol, restart, ...])

Use Generalized Minimal RESidual iteration to solve Ax = b.

lgmres(A, b[, x0, rtol, atol, maxiter, M, ...])

Solve a matrix equation using the LGMRES algorithm.

minres(A, b[, x0, rtol, shift, maxiter, M, ...])

Use MINimum RESidual iteration to solve Ax=b

qmr(A, b[, x0, rtol, atol, maxiter, M1, M2, ...])

Use Quasi-Minimal Residual iteration to solve Ax = b.

gcrotmk(A, b[, x0, rtol, atol, maxiter, M, ...])

Solve a matrix equation using flexible GCROT(m,k) algorithm.

tfqmr(A, b[, x0, rtol, atol, maxiter, M, ...])

Use Transpose-Free Quasi-Minimal Residual iteration to solve Ax = b.

Iterative methods for least-squares problems:

lsqr(A, b[, damp, atol, btol, conlim, ...])

Find the least-squares solution to a large, sparse, linear system of equations.

lsmr(A, b[, damp, atol, btol, conlim, ...])

Iterative solver for least-squares problems.

Matrix factorizations#

Eigenvalue problems:

eigs(A[, k, M, sigma, which, v0, ncv, ...])

Find k eigenvalues and eigenvectors of the square matrix A.

eigsh(A[, k, M, sigma, which, v0, ncv, ...])

Find k eigenvalues and eigenvectors of the real symmetric square matrix or complex Hermitian matrix A.

lobpcg(A, X[, B, M, Y, tol, maxiter, ...])

Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG).

Singular values problems:

svds(A[, k, ncv, tol, which, v0, maxiter, ...])

Partial singular value decomposition of a sparse matrix.

The svds function supports the following solvers:

Complete or incomplete LU factorizations

splu(A[, permc_spec, diag_pivot_thresh, ...])

Compute the LU decomposition of a sparse, square matrix.

spilu(A[, drop_tol, fill_factor, drop_rule, ...])

Compute an incomplete LU decomposition for a sparse, square matrix.


LU factorization of a sparse matrix.

Sparse arrays with structure#

LaplacianNd(*args, **kwargs)

The grid Laplacian in N dimensions and its eigenvalues/eigenvectors.


ArpackNoConvergence(msg, eigenvalues, ...)

ARPACK iteration did not converge

ArpackError(info[, infodict])

ARPACK error