I want this
# assume each 2x2 as assigned number on right
[[[False True] # 1
[False False]]
[[False False] # 2
[False True]]
[[ True False] # 3
[False False]]
[[False True] # 4
[False False]]]
to be reshape into
[[[[False True False False]
[False False False True]
[ True False False True]
[False False False False]]]]
as in
[[[[False True | False False] # 1 | 2
[False False | False True] ___ ___
---------- -----------
[ True False | False True] # 3 | 4
[False False | False False]]]]
but I get when using arr.reshape(1,1,4,4)
[[[[False True False False] # 1 flat
[False False False True] # 2 flat
[ True False False False] # 3 flat
[False True False False]]]] # 4 flat
Notice that each 2x2 is flattened. I want numpy to reshape such that 2x2 remains the same while the dimensions before that are adjusted. How do I do it?
EDIT: shape of arr is m,n,r and m could be odd
EDIT2:
Case 9x2x2 into 1x1x6x6
What I have:
[[[False False]
[False True]]
[[False False]
[False True]]
[[ True False]
[False False]]
[[False False]
[False True]]
[[False False]
[ True False]]
[[False False]
[ True False]]
[[False True]
[False False]]
[[False False]
[ True False]]
[[ True False]
[False False]]]
Expected:
[[[[False False | False False | True False]
[False True | False True | False False]
----------- ----------- ----------
[False False | False False | False False]
[False True | True False | True False]
---------- ----------- -----------
[False True | False False | True False]
[False False | True False | False False]]]]
What I got:
[[[[False False False True False False] # 1 flattened; half of 2
[False True True False False False] # rem half of 2; flattened 3
[False False False True False True] # ...
[False False False True False False]
[False False True False False True]
[False False True False False False]]]]