我有以下Numpy形状数组(4,4,3):
EnableRedisHttpSession
我正在寻找一个优雅的解决方案来重新排列该数组中的元素以获得以下3D数组形状(3,4,4):
a = [[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[12 13 14]
[15 16 17]
[18 19 20]
[21 22 23]]
[[24 25 26]
[27 28 29]
[30 31 32]
[33 34 35]]
[[36 37 38]
[39 40 41]
[42 43 44]
[45 46 47]]]
答案 0 :(得分:2)
答案 1 :(得分:1)
我能想到的最快的方法是将numpy的swapaxes
函数与转置函数结合使用。
anew=np.swapaxes(a,0,1).T
答案 2 :(得分:0)
如果有人对纯Python提出同样的问题:
mylist = [[[1,2,3], [4,5,6]], [[7,8,9], [10, 11, 12]]]
flat = sum(sum(mylist, []), [])
groups = 3
print [flat[r::groups] for r in range(groups)]
[[1,4,7,10],[2,5,8,11],[3,6,9,12]]