【问题标题】:How to create a lower diagonal matrix with numpy?如何用numpy创建一个下对角矩阵?
【发布时间】:2020-08-25 07:56:00
【问题描述】:

如何使用 Numpy 生成动态大小的下对角矩阵? 比如如果矩阵的大小n4我想得到这样一个矩阵:

| 0 0 0 0 |
| 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    你可以创建它,首先创建一个零矩阵,然后填充一个:

    import numpy as np
    
    # create matrix with zeros
    n=4
    mat = np.zeros((n,n))
    
    # create indexes for where the 1s belong
    rows = np.arange(1,n)
    cols = np.arange(n-1)
    
    # fill in the 1s
    mat[rows, cols] = 1
    

    输出:

    [[0. 0. 0. 0.]
     [1. 0. 0. 0.]
     [0. 1. 0. 0.]
     [0. 0. 1. 0.]]
    

    【讨论】:

      【解决方案2】:

      我找到了使用np.eye的最短方法:

      import numpy as np
      
      n = 4
      np.eye(n, k=-1, dtype=int)
      

      输出是:

      array([[0, 0, 0, 0],
             [1, 0, 0, 0],
             [0, 1, 0, 0],
             [0, 0, 1, 0]])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-29
        • 2015-07-15
        • 2011-08-17
        • 2017-06-07
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        相关资源
        最近更新 更多