在 Python 中计算矩阵堆栈的对数行列式
pythonnumpyserver side programmingprogramming
要计算矩阵堆栈的对数行列式,请使用 Python 中的 numpy.linalg.slogdet() 方法。第一个参数 s 是输入数组,必须是方阵二维数组。该方法带有 sign,返回一个表示行列式符号的数字。对于实数矩阵,该符号为 1、0 或 -1。对于复数矩阵,该符号为绝对值为 1 或 0 的复数。
该方法带有 logdet,返回行列式绝对值的自然对数。如果行列式为零,则 sign 将为 0,logdet 将为 -Inf。在所有情况下,行列式都等于符号 * np.exp(logdet)。
步骤
首先,导入所需的库-
import numpy as np
创建一个数组 −
arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
显示数组 −
print("我们的数组...\n",arr)
检查维度 −
print("\n数组的维度...\n",arr.ndim)
获取数据类型 −
print("\n我们的数组对象的数据类型...\n",arr.dtype)
获取形状 −
print("\n我们的数组对象的形状...\n",arr.shape)
线性代数中数组的行列式 −
print("\nDeterminant...\n",np.linalg.det(arr))
要计算矩阵堆栈的对数行列式,请使用 numpy.linalg.slogdet() 方法。如果行列式为零,则 sign 将为 0,logdet 将为 -Inf。在所有情况下,行列式都等于 sign * np.exp(logdet) −
(sign, logdet) = np.linalg.slogdet(arr) print("\nResult....\n",(sign, logdet))
示例
import numpy as np # 创建数组 arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]]]) # 显示数组 print("我们的数组...\n",arr) # 检查维度 print("\n数组的维度...\n",arr.ndim) # 获取数据类型 print("\n我们的数组对象的数据类型...\n",arr.dtype) # 获取形状 print("\n我们的数组对象的形状...\n",arr.shape) # 线性代数中数组的行列式 print("\n行列式...\n",np.linalg.det(arr)) # 要计算矩阵堆栈的对数行列式,请使用 Python 中的 numpy.linalg.slogdet() 方法 (sign, logdet) = np.linalg.slogdet(arr) print("\n结果....\n",(sign, logdet))
输出
我们的数组... [[[1 2] [3 4]] [[1 2] [2 1]] [[1 3] [3 1]]] 我们的数组的维度... 3 我们的数组对象的数据类型... int64 我们的数组对象的形状... (3, 2, 2) 行列式... [-2. -3. -8.] 结果.... (array([-1., -1., -1.]), array([0.69314718, 1.09861229, 2.07944154]))