反向单位矩阵
单位矩阵即对角线为 1,如下:
"" src="/UploadFiles/2021-04-08/20191129090304.jpg">
那么反向的单位矩阵就是反对角线为 1:
"" src="/UploadFiles/2021-04-08/20191129090312.jpg">
左右镜像操作
这里采用 numpy 实现。
方案 1
import numpy as np A = np.eye(3) print(A)
B1 = np.fliplr(A) print(B1)
方案 2
B2 = A[:,::-1] print(B2)
这面这两种方案就可以顺利实现反向单位矩阵的定义了。此外,我们拓展了另外两种操作。
上下镜像操作
方法 1
import numpy as np b = [1, 2, 3] B = np.diag(b) print(B) # [[1 0 0] # [0 2 0] # [0 0 3]]
B3 = np.rot90(B) print(B3) # [[0 0 3] # [0 2 0] # [1 0 0]]
方法 2
B4 = np.flipud(B) print(B4)
取上三角和反对角线元素
取上三角元素
目标是:
[[1 2 3] [4 5 6] [7 8 9]] ==> [2. 3. 6.]
import numpy as np row = 3 A = np.arange(row**2)+1 A = np.mat(A.reshape([row, row])) # print(A) def ReduceData(R_xx, row): ''' 取上三角元素 ''' vector = [] for i in range(0, row): a = R_xx[i, i + 1:] vector = np.append(vector, a) return vector print(ReduceData(A, row))
取反对角线元素
[[1 2 3] [4 5 6] [7 8 9]] ==> [3 5 7]
def DiagData(R_xx, row): ''' 取反对角线元素 ''' # vector = [] vector = np.rot90(R_xx) vector = np.diag(vector) return vector print(DiagData(A, row))
以上这篇python 实现一个反向单位矩阵示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。