一些代码会生成 numpy 数组:
array([[2, 2, 1, 0, 4, 2, 3, 3]])
我想从中恢复:
array([ [[2, 1],
[4, 3]],
[[2, 0],
[2, 3]] ])
即:将跳跃元素放入两个矩阵中。
请告知如何实现任意数量的最终矩阵(玩具示例中为 2 个)及其维度(始终彼此相等;玩具示例中为 2x2)。
我尝试了
reshape(2,2,2,1)
但失败了,结果是:
array([[[[2],
[2]],
[[1],
[0]]],
[[[4],
[2]],
[[3],
[3]]]])
In [195]: arr = np.array([[2, 2, 1, 0, 4, 2, 3, 3]])
In [196]: arr.reshape(2,2,2)
Out[196]:
array([[[2, 2],
[1, 0]],
[[4, 2],
[3, 3]]])
关于转置的第一个猜测 -
In [197]: arr.reshape(2,2,2).transpose(2,1,0)
Out[197]:
array([[[2, 4],
[1, 3]],
[[2, 2],
[0, 3]]])
不完全是,切换最后两个维度可以纠正:
In [198]: arr.reshape(2,2,2).transpose(2,0,1)
Out[198]:
array([[[2, 1],
[4, 3]],
[[2, 0],
[2, 3]]])