После большого количества проб и ошибок с transpose
:
In [157]: rotF = np.rot90(np.moveaxis(F,1,3),2,(1,2))
In [158]: rotF
Out[158]:
array([[[[ 0, -1],
[ 2, -1]],
[[-1, 0],
[ 1, 0]]],
[[[ 0, -1],
[ 3, -1]],
[[-1, 2],
[ 0, 1]]]])
In [159]: F1 = rotF.transpose(3,0,1,2)
In [160]: F1
Out[160]:
array([[[[ 0, 2],
[-1, 1]],
[[ 0, 3],
[-1, 0]]],
[[[-1, -1],
[ 0, 0]],
[[-1, -1],
[ 2, 1]]]])
In [161]: F1.transpose(0,2,3,1)
Out[161]:
array([[[[ 0, 0],
[ 2, 3]],
[[-1, -1],
[ 1, 0]]],
[[[-1, -1],
[-1, -1]],
[[ 0, 2],
[ 0, 1]]]])
То, что F1
промежуточная стадия была
In [110]: G =np.array([np.array([[0,2],[-1,1]]),
...: np.array([[0,3],[-1,0]]),
...: np.array([[-1,-1],[0,0]]),
...: np.array([[-1,-1],[2,1]])]).reshape(2,2,2,2)
In [111]: G
Out[111]:
array([[[[ 0, 2],
[-1, 1]],
[[ 0, 3],
[-1, 0]]],
[[[-1, -1],
[ 0, 0]],
[[-1, -1],
[ 2, 1]]]])
Или коротко:
In [163]: rotF.transpose(3,1,2,0)
Out[163]:
array([[[[ 0, 0],
[ 2, 3]],
[[-1, -1],
[ 1, 0]]],
[[[-1, -1],
[-1, -1]],
[[ 0, 2],
[ 0, 1]]]])
Трудно представить, но, видимо, вы просто хотели поменять местами первую и последнюю оси.
Похоже, rot_F
также
np.rot90(F,2,(2,3)).transpose(0,2,3,1)
F[:,:,::-1,::-1].transpose(0,2,3,1)
F.transpose(0,2,3,1)[:,::-1,::-1,:]