在 Python 中计算矩阵堆栈的 Moore-Penrose 伪逆
要计算矩阵堆栈的(Moore-Penrose)伪逆,请在 Python 中使用 numpy.linalg.pinv() 方法。使用矩阵的奇异值分解 (SVD) 并包含所有大的奇异值来计算广义逆。
第一个参数 a 是要进行伪逆的矩阵或矩阵堆栈。第二个参数 rcodn 是小奇异值的截止值。小于或等于 rcond * 最大奇异值的奇异值将设置为零。针对矩阵堆栈进行广播。第三个参数 hermitian,如果为 True,则假定 a 为厄米特矩阵,从而能够使用更有效的方法来查找奇异值。默认为 False。
步骤
首先,导入所需的库。
import numpy as np
使用 array() 创建数组。
arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
显示数组。
print("Our Array...\n",arr)
检查维度。
print("\nDimensions of our Array...\n",arr.ndim)
获取数据类型。
print("\nDatatype of our Array object...\n",arr.dtype)
获取形状。
print("\nShape of our Array object...\n",arr.shape)
要计算矩阵堆栈的(Moore-Penrose)伪逆,请在 Python 中使用 numpy.linalg.pinv() 方法。
print("\nResult...\n",np.linalg.pinv(arr))
示例
import numpy as np # Create an array using array() arr = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ]) # Display the array print("Our Array...\n",arr) # Check the Dimensions print("\nDimensions of our Array...\n",arr.ndim) # Get the Datatype print("\nDatatype of our Array object...\n",arr.dtype) # Get the Shape print("\nShape of our Array object...\n",arr.shape) # To Compute the (Moore-Penrose) pseudo-inverse of a stack of matrices, use the numpy.linalg.pinv() method in Python. print("\nResult...\n",np.linalg.pinv(arr))
输出
Our Array... [[[1 2] [3 4]] [[1 2] [2 1]] [[1 3] [3 1]]] Dimensions of our Array... 3 Datatype of our Array object... int64 Shape of our Array object... (3, 2, 2) Result... [[[-2. 1. ] [ 1.5 -0.5 ]] [[-0.33333333 0.66666667] [ 0.66666667 -0.33333333]] [[-0.125 0.375 ] [ 0.375 -0.125 ]]]
广告