# How to check whether matrix is a singular or not in Python

In this article, we will how to check whether a given matrix is a singular matrix or not in Python. A matrix is said to be a singular matrix if its determinant is equal to zero.

Example

```Input: [[2, 32, 12],
[0, 0, 0],
[23, 6, 9]]
Output: Singular Matrix
Explanation: The determinant of the given matrix is zero.

Input: [[3, 4, 18],
[9, 18, 1],
[2, 3, 5]]
Output: Non-Singular Matrix
Explanation: The determinant of the given matrix is not equal to zero.```

Mathematical formula for calculating the determinnant

For example given matrix A is [[a, b, c], [d, e, f], [g, h, i]] the determinant of the matrix is

|A| = a(e*i − f*h) − b(d*i − f*g) + c(d*h − e*g)

Method 1:

Approach:

1. Check the base when the given matrix is 2×2.

2. If the matrix is the determinant value is matrix[0][0]*matrix[1][1] – matrix[1][0]*matrix[0][1].

3. Declare a variable det to store the determinant.

4. Apply the formulae and store the result in det.

5. Finally, return the determinant.

```def get_cofactor(matrix, i, j):
return [row[: j] + row[j+1:] for row in (matrix[: i] + matrix[i+1:])]
def is_singular(matrix):
n = len(matrix)
if (n == 2):
val = matrix[0][0]*matrix[1][1] - matrix[1][0]*matrix[0][1]
return val

det = 0
for i in range(n):
s = (-1)**i
sub_det = is_singular(get_cofactor(matrix, 0, i))
det += (s*matrix[0][i]*sub_det)
return det
matrix = [[78, 45, 4], [0, 0, 0], [7, 4, -54]]
n = len(matrix)
print("The given matrix")
for i in range(n):
for j in range(n):
print(matrix[i][j], end=' ')
print()
if(is_singular(matrix)):
print("The given matrix is non-Singular")
else:
print("The given matrix is singular")```

Output

```The given matrix
78 45 4
0 0 0
7 4 -54
The given matrix is singular```

Method 2: Using NumPy

NumPy module in Python has an inbuilt linalg.det() function to calculate the determinant of a matrix.

1. Use linalg.det() function to calculate the determinant.

2. Check whether the determinant is equal to zero. If yes print “Singular Matrix”.

3. Else, print “Non-Singular matrix”.

```import numpy as np
arr = np.array([[1,- 2, 2],
[9, 9, 8],
[7, 8, 0]])
if (np.linalg.det(arr)):
print("Non Singular matrix")
else:
print("Singular Matrix")```

Output

`Non Singular matrix`