3维矩阵的单位矩阵

Identity matrix of 3 Dimensional matrix

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 矩阵恒等式的其他变体。检查此 以供参考。

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

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

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

您也可以使用 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.]]]