# numpy.linalg.inv

linalg.inv(a)

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