NumPy

Previous topic

numpy.linalg.lstsq

Next topic

numpy.linalg.pinv

This is documentation for an old release of NumPy (version 1.19). Read this page in the documentation of the latest stable release (version 2.2).

numpy.linalg.inv

numpy.linalg.inv(a)[source]

Compute the (multiplicative) inverse of a matrix.

Given a square matrix a, return the matrix ainv satisfying dot(a, ainv) = dot(ainv, a) = eye(a.shape[0]).

Parameters
a(…, M, M) array_like

Matrix to be inverted.

Returns
ainv(…, M, M) ndarray or matrix

(Multiplicative) inverse of the matrix a.

Raises
LinAlgError

If a is not square or inversion fails.

See also

scipy.linalg.inv

Similar function in SciPy.

Notes

New in version 1.8.0.

Broadcasting rules apply, see the numpy.linalg documentation for details.

Examples

>>>
>>> from numpy.linalg import inv
>>> a = np.array([[1., 2.], [3., 4.]])
>>> ainv = inv(a)
>>> np.allclose(np.dot(a, ainv), np.eye(2))
True
>>> np.allclose(np.dot(ainv, a), np.eye(2))
True

If a is a matrix object, then the return value is a matrix as well:

>>>
>>> ainv = inv(np.matrix(a))
>>> ainv
matrix([[-2. ,  1. ],
        [ 1.5, -0.5]])

Inverses of several matrices can be computed at once:

>>>
>>> a = np.array([[[1., 2.], [3., 4.]], [[1, 3], [3, 5]]])
>>> inv(a)
array([[[-2.  ,  1.  ],
        [ 1.5 , -0.5 ]],
       [[-1.25,  0.75],
        [ 0.75, -0.25]]])