我想制作一个二维矩阵MxNx2的索引数组,对于M = N = 2这样的东西:
[[[0,0], [0,1]],
[[1,0], [1,1]]]
在Numpy中有一种简单的方法吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
这是一种直接方法,可导致连续数组:
M,N = 3,4
MM,NN,DD = np.ogrid[:M,:N,:2]
MM*(1-DD)+NN*DD
结果:
array([[[0, 0],
[0, 1],
[0, 2],
[0, 3]],
[[1, 0],
[1, 1],
[1, 2],
[1, 3]],
[[2, 0],
[2, 1],
[2, 2],
[2, 3]]])
答案 2 :(得分:0)
是的,您可以在此处使用np.meshgrid
[numpy-doc]:
np.transpose(np.meshgrid(np.arange(m), np.arange(n)))
例如m = 3
和n = 4
:
>>> np.transpose(np.meshgrid(np.arange(m), np.arange(n)))
array([[[0, 0],
[0, 1],
[0, 2],
[0, 3]],
[[1, 0],
[1, 1],
[1, 2],
[1, 3]],
[[2, 0],
[2, 1],
[2, 2],
[2, 3]]])