当前位置 主页 > 服务器问题 > Linux/apache问题 >

    python 实现一个反向单位矩阵示例

    栏目:Linux/apache问题 时间:2019-12-01 10:23

    反向单位矩阵

    单位矩阵即对角线为 1,如下:

    那么反向的单位矩阵就是反对角线为 1:

    左右镜像操作

    这里采用 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 实现一个反向单位矩阵示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。