# Compute the sign and natural logarithm of the determinant of an array in Python

• Last Updated : 22 Apr, 2022

In this article, we will cover how to compute the sign and natural logarithm of the determinant of an array in Python using NumPy.

## numpy.linalg.slogdet() method

The numpy.linalg.slogdet() method provides us to compute the sign and natural logarithm of the determinant of an array in Python. A call to slogdet may overflow or underflow if the determinant of an array is very small or very large. Because it calculates the logarithm of the determinant rather than the determinant of itself, this procedure is more resistant to such problems.

Syntax: numpy.linalg.slogdet()

Parameters:

• a: array like object. The input array must be a two-dimensional array.

Return: logarithm of the determinant of an array.

### Example 1:

In this example, a 2-d array is created using numpy.array() method and numpy.lib.linalg.slogdet() is used to compute the log of the determinant of the array and sign. The method returns the sign and logarithm of the determinant of the array. The shape, datatype, and dimensions of the array can be found by .shape , .dtype, and .ndim attributes.

## Python3

 `# import packages``import` `numpy as np`` ` `# Creating an array``array ``=` `np.array([[``10``,``20``],[``30``,``40``]])``print``(array)`` ` `# shape of the array is``print``(``"Shape of the array is : "``,array.shape)`` ` `# dimension of the array``print``(``"The dimension of the array is : "``,array.ndim)`` ` `# Datatype of the array``print``(``"Datatype of our Array is : "``,array.dtype)`` ` `# computing sign and natural logarithm of the ``# determinant of the array``sign, determinant``=` `(np.linalg.slogdet(array))`` ` `print``(``'sign of the array is : '``+``str``(sign))`` ` `print``(``'logarithm of the determinant of the array is : '``+` `str``(determinant))`

Output:

[[10 20]

[30 40]]

Shape of the array is :  (2, 2)

The dimension of the array is :  2

Datatype of our Array is :  int64

sign of the array is : -1.0

logarithm of the determinant of the array is : 5.298317366548037

### Example 2:

If we also want to compute the determinant of the array we can use sign*exp(logdet) and find it. sign and logdet are returned by the numpy.lib.linalg.slogdet() method.

## Python3

 `import` `numpy as np`` ` `# Creating an array``array ``=` `np.array([[``2``,``3``],[``5``,``6``]])``print``(array)`` ` `# shape of the array is``print``(``"Shape of the array is : "``,array.shape)`` ` `# dimension of the array``print``(``"The dimension of the array is : "``,array.ndim)`` ` `# Datatype of the array``print``(``"Datatype of our Array is : "``,array.dtype)`` ` `# computing sign and natural logarithm of the``# determinant of the array``sign, determinant``=` `(np.linalg.slogdet(array))`` ` `print``(``'sign of the array is : '``+``str``(sign))`` ` `print``(``'logarithm of the determinant of the array is : '``+` `str``(determinant))`` ` `print``(``'computing the determinant of the array using np.exp(): '``      ``+` `str``(sign``*``np.exp(determinant)))`

Output:

[[2 3]

[5 6]]

Shape of the array is :  (2, 2)

The dimension of the array is :  2

Datatype of our Array is :  int32

sign of the array is : -1.0

logarithm of the determinant of the array is : 1.0986122886681091

computing the determinant of the array using np.exp(): -2.9999999999999982

My Personal Notes arrow_drop_up