使用 Python 计算矩阵堆栈的 Moore-Penrose 伪逆
pythonnumpyserver side programmingprogramming
要计算矩阵堆栈的 (Moore-Penrose) 伪逆,请使用 Python 中的 numpy.linalg.pinv() 方法。使用矩阵的奇异值分解 (SVD) 并包括所有大奇异值来计算矩阵的广义逆。
第一个参数 a 是要伪逆的矩阵或矩阵堆栈。第二个参数 rcodn 是小奇异值的截断值。小于或等于 rcond * largest_singular_value 的奇异值设置为零。针对矩阵堆栈进行广播。第三个参数 hermitian,如果为 True,则假定 a 是 Hermitian,从而实现一种更有效的查找奇异值的方法。默认为 False。
步骤
首先,导入所需的库。
import numpy as np
使用 array() 创建数组。
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)
要计算数组堆栈的(Moore-Penrose)伪逆,请使用 Python 中的 numpy.linalg.pinv() 方法。
print("\n结果...\n",np.linalg.pinv(arr))
示例
import numpy as np # 使用 array() 创建数组 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) # 要计算矩阵堆栈的(Moore-Penrose)伪逆,请使用 Python 中的 numpy.linalg.pinv() 方法。 print("\n结果...\n",np.linalg.pinv(arr))
输出
我们的数组... [[[1 2] [3 4]] [[1 2] [2 1]] [[1 3] [3 1]]] 我们的数组的维度... 3 我们的数组对象的数据类型... int64 我们的数组对象的形状... (3, 2, 2) 结果... [[[-2. 1. ] [ 1.5 -0.5 ]] [[-0.33333333 0.66666667] [ 0.66666667 -0.33333333]] [[-0.125 0.375 ] [ 0.375 -0.125 ]]]