在 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 ]]]

更新于: 2022-2-25

309 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告