我想重塑以下数组:
>>> test
array([ 11., 12., 13., 14., 21., 22., 23., 24., 31., 32., 33.,
34., 41., 42., 43., 44.])
为了获得:
>>> test2
array([[ 11., 12., 21., 22.],
[ 13., 14., 23., 24.],
[ 31., 32., 41., 42.],
[ 33., 34., 43., 44.]])
我尝试过“重塑”类似
的东西>>> test.reshape(4,4)
array([[ 11., 12., 13., 14.],
[ 21., 22., 23., 24.],
[ 31., 32., 33., 34.],
[ 41., 42., 43., 44.]])
和
>>> test.reshape(2,2,2,2)
array([[[[ 11., 12.],
[ 13., 14.]],
[[ 25., 26.],
[ 27., 28.]]],
[[[ 39., 31.],
[ 32., 33.]],
[[ 41., 44.],
[ 45., 46.]]]])
我尝试了不同的组合但没有效果。
由于
答案 0 :(得分:5)
重塑和转置/交换轴的方法 -
v-for
示例运行 -
m,n = 2,2 # Block size (rowxcol)
rowlen = 4 # Length of row
out = test.reshape(-1,m,rowlen//n,n).swapaxes(1,2).reshape(-1,rowlen)
# Or transpose(0,2,1,3)