【问题标题】:Identity matrix of 3 Dimensional matrix3维矩阵的单位矩阵
【发布时间】:2021-12-31 21:20:22
【问题描述】:
Identity = array([[[1., 0., 0., 0.],
    [0., 1., 0., 0.],
    [0., 0., 1., 0.],
    [0., 0., 0., 1.]],

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

   [[1., 0., 0., 0.],
    [0., 1., 0., 0.],
    [0., 0., 1., 0.],
    [0., 0., 0., 1.]]])

有一个任务要我在 3D 中创建单位矩阵。

我假设以上是形状为 (3,4,4) 的 3D 单位矩阵。

我看到了其他我不理解的 3D 矩阵身份变体。检查此What's the best way to create a "3D identity matrix" in Numpy? 以供参考。

如果我在上面的单位矩阵假设中是正确的。请帮助我用 numpy 构建相同的内容。

【问题讨论】:

    标签: python numpy matrix 3d


    【解决方案1】:

    您可以使用np.identity() 生成单位矩阵,然后使用np.broadcast_to() 添加第三维:

    import numpy as np
    n = 4
    print(np.broadcast_to(np.identity(n), (3, n, n)))
    

    【讨论】:

      【解决方案2】:

      你也可以使用np.tile:

      n = 4
      k = 3
      out = np.tile(np.identity(n), (k,1)).reshape(k,n,n)
      

      输出:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多