En este artículo, cubriremos cómo calcular el signo y el logaritmo natural del determinante de una array en Python usando NumPy .
método numpy.linalg.slogdet()
El método numpy.linalg.slogdet() nos permite calcular el signo y el logaritmo natural del determinante de una array en Python. Una llamada a slogdet puede desbordarse o subdesbordarse si el determinante de una array es muy pequeño o muy grande. Debido a que calcula el logaritmo del determinante en lugar del determinante de sí mismo, este procedimiento es más resistente a tales problemas.
Sintaxis: numpy.linalg.slogdet()
Parámetros:
- a: array como objeto. La array de entrada debe ser una array bidimensional.
Retorno: logaritmo del determinante de un arreglo.
Ejemplo 1:
En este ejemplo, se crea una array bidimensional con el método numpy.array() y se usa numpy.lib.linalg.slogdet() para calcular el registro del determinante de la array y el signo. El método devuelve el signo y el logaritmo del determinante de la array. La forma, el tipo de datos y las dimensiones de la array se pueden encontrar mediante los atributos .shape, .dtype y .ndim .
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))
Producción:
[[10 20]
[30 40]]
La forma de la array es: (2, 2)
La dimensión de la array es: 2
El tipo de datos de nuestro Array es: int64
el signo de la array es: -1.0
logaritmo del determinante de la array es: 5.298317366548037
Ejemplo 2:
Si también queremos calcular el determinante de la array, podemos usar sign*exp(logdet) y encontrarlo. sign y logdet son devueltos por el método numpy.lib.linalg.slogdet().
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)))
Producción:
[[2 3]
[5 6]]
La forma de la array es: (2, 2)
La dimensión de la array es: 2
El tipo de datos de nuestro Array es: int32
el signo de la array es: -1.0
logaritmo del determinante de la array es: 1.0986122886681091
calculando el determinante de la array usando np.exp(): -2.9999999999999982
Publicación traducida automáticamente
Artículo escrito por sarahjane3102 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA