## NumPy Inverse

“**Matrices**” are a fundamental tool for data science, machine learning, and linear algebra in Python. They store numbers in a grid-like structure and enable various operations such as solving equations and transforming data. Sometimes, we may need to reverse the effect of a matrix by finding its inverse. Inverting a matrix can help us solve a system of linear equations. To inverse a matrix, the “**numpy**” library is used in Python.

This article explains how to use “numpy” to inverse a matrix using several examples.

## What is the Matrix Inverse?

Mathematically, a matrix is an array of rows and columns of num/numbers, symbols, or equations. Inverses of matrices are new matrices that produce the identity matrix by multiplying them with the original given matrices. A square matrix containing “ones” along the diagonal and “zeroes” elsewhere is the identity matrix.

## How to Inverse a Matrix Utilizing “numpy”?

The “**numpy**” library provides a simple function called “**inv()**” to invert a matrix. This function takes a matrix as its input and returns its inverse.

**Syntax **

In the above syntax, the “**a**” parameter corresponds to the matrix to be inverted.

**Note**: The inverse of a matrix is not applicable/functional to all types of matrices. It is such that if the given matrix is singular, i.e., its determinant is “**zero**”, it does not have an inverse. In such cases, the “**inv()**” function will raise a “**LinAlgError**” exception.

**Example 1: Computing Inverse of a “2×2” Matrix**

Let’s take a simple “2×2” matrix and compute its inverse using “numpy”:

value_a = numpy.array([[52, 22], [43, 24]])

print('Given Matrix: \n',value_a)

inv_a = numpy.linalg.inv(value_a)

print('Inverse Matrix: \n',inv_a)

In the above code, a “**2×2**” matrix is created and the “**inv()**” function of the “**numpy.linalg**” module is used to compute its inverse.

**Output**

The output snippet shows the inverse matrix of the given matrix.

**Example 2: Computing Inverse of a “3×3” Matrix**

Let’s take a “3×3” matrix and compute its inverse using “numpy”:

value_1 = numpy.array([[52, 32, 14], [24, 25, 36], [27, 28, 29]])

print('Given Matrix: \n',value_1)

inv_1 = numpy.linalg.inv(value_1)

print('\nInverse Matrix: \n',inv_1)

The above code lines created a “**3×3**” matrix and computed its inverse via the “**inv()**” function.

**Output**

The above output returns the inverse of a “3×3” matrix.

**Example 3: Computing Inverse of “Singular Matrix”**

Let’s take a singular matrix and try to compute its inverse:

matrx_1 = numpy.array([[1, 2], [2, 4]])

inv_1 = numpy.linalg.inv(matrx_1)

print(inv_1)

In the above code block, the “**numpy.linalg.inv()**” function takes a singular matrix and returns the error “**LinAlgError**” upon calculating its inverse.

**Output**

The above output implies that the inverse of the matrix has not been calculated since the given matrix is singular.

## Alternative Approach: Find the Inverse of a Matrix Using the “scipy” Library

The “**linalg.inv()**” function of the “**scipy**” library is also used to find the numpy inverse. Let’s understand it via the below example.

**Example**

The following code uses the “**linalg.inv()**” function of the “**scipy**” library to get the inverse of the matrix:

from scipy import linalg

value_a = numpy.matrix([[27, 32,],[43, -25]])

print('Given Matrix: \n',value_a)

value_b = linalg.inv(value_a)

print('\nInverse Matrix: \n',value_b)

In this code, the “**linalg.inv()**” function of the “**numpy**” library is used to find the inverse of the specified matrix.

**Output**

This outcome returns the inverse matrix of the given matrix.

## Conclusion

Matrix inversion is a vital frequent operation in linear algebra, and “numpy” offers a simple function “**inv()**” for this purpose. This article discussed how to inverse a matrix with “numpy” using the “inv()” function. The “**scipy**” library comprises a function named “**linalg.inv()**” that can also be used to find the inverse of the given matrix. Various examples of finding the inverse of matrices are demonstrated with different sizes, including a singular matrix.

Source: linuxhint.com