 GFG App
Open App Browser
Continue

# How to Find cofactor of a matrix using Numpy

In this article, we are going to see how to find the cofactor of a given matrix using NumPy. There is no direct way to find the cofactor of a given matrix using Numpy.

### Deriving the formula to find cofactor using the inverse of matrix in Numpy

Formula to find the inverse of a matrix:

`A-1 = ( 1 / det(A) )* Adj(A)      ----(1)`

Adj(A) is the Adjoint matrix of A which can be found by taking the Transpose of the cofactor matrix of A:

`Adj(A) = (cofactor(A))T            ----(2)`

Substituting equation 2 in equation 1 we get the following:

`A-1 = ( 1/det(A) ) *  (cofactor(A))T `

Sending det(A) to another side of the equation:

`det(A) * A-1 = (cofactor(A))T `

Removing transpose on the Right-hand side(RHS) of the equation will result in applying transpose on the Left-hand side(LHS) of the equation. We can apply transpose after multiplying A-1 by det(A) but for simplicity, we will apply transpose to A-1 then multiply by det(A), however, both results are the same.

`det(A) * (A-1)T = cofactor(A)      `

Finally, we derived the formula to find the cofactor of a matrix:

`cofactor(A) = (A-1)T * det(A)`

### Implementation in Numpy:

Steps Needed:

Example 1: Finding cofactor in the 2D matrix

## Python3

 `import` `numpy as np` `  `  `def` `matrix_cofactor(matrix):`   `    ``try``:` `        ``determinant ``=` `np.linalg.det(matrix)` `        ``if``(determinant!``=``0``):` `            ``cofactor ``=` `None` `            ``cofactor ``=` `np.linalg.inv(matrix).T ``*` `determinant` `            ``# return cofactor matrix of the given matrix` `            ``return` `cofactor` `        ``else``:` `            ``raise` `Exception(``"singular matrix"``)` `    ``except` `Exception as e:` `        ``print``(``"could not find cofactor matrix due to"``,e)` `  `  `print``(matrix_cofactor([[``1``, ``2``], [``3``, ``4``]]))`

Output:

```[[ 4. -3.]
[-2.  1.]]```

Example 2: Finding cofactor 3D matrix

## Python3

 `import` `numpy as np` `  `  `def` `matrix_cofactor(matrix):`   `    ``try``:` `        ``determinant ``=` `np.linalg.det(matrix)` `        ``if``(determinant!``=``0``):` `            ``cofactor ``=` `None` `            ``cofactor ``=` `np.linalg.inv(matrix).T ``*` `determinant` `            ``# return cofactor matrix of the given matrix` `            ``return` `cofactor` `        ``else``:` `            ``raise` `Exception(``"singular matrix"``)` `    ``except` `Exception as e:` `        ``print``(``"could not find cofactor matrix due to"``,e)` `  `  `print``(matrix_cofactor([[``1``, ``9``, ``3``],` `                       ``[``2``, ``5``, ``4``],` `                       ``[``3``, ``7``, ``8``]]))`

Output:

```[[ 12.  -4.  -1.]
[-51.  -1.  20.]
[ 21.   2. -13.]]```

My Personal Notes arrow_drop_up