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.]]]
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.]]]