Difficulty understanding .moveaxis in Numpy

I am learning Numpy in Python. I am having difficulties understanding `.moveaxis` in Numpy.

I first create an array by using `a=np.arange(24).reshape(2,3,4)`. The system will first fill up axis 2 with `0 1 2 3`, then move along axis 1 to the next row. When the first ‘page’ is done, the system move along axis 0. The following is obtained.

``````array([[[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11]],

[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
``````

If I input `b = np.swapaxes(a,0,2); b` now, the system should fill up axis 0 first, then axis 1 and finally axis 2. The following is obtained.

``````array([[[ 0, 12],
[ 4, 16],
[ 8, 20]],

[[ 1, 13],
[ 5, 17],
[ 9, 21]],

[[ 2, 14],
[ 6, 18],
[10, 22]],

[[ 3, 15],
[ 7, 19],
[11, 23]]])
``````

This is understandable as axis 1 is preserved, so we can still see columns like `0 4 8` and `1 5 9` after swapping the axes.

But I don’t really understand how `.moveaxis` works. If I input `b = np.moveaxis(a,0,2); b`, the following is obtained.

``````array([[[ 0, 12],
[ 1, 13],
[ 2, 14],
[ 3, 15]],

[[ 4, 16],
[ 5, 17],
[ 6, 18],
[ 7, 19]],

[[ 8, 20],
[ 9, 21],
[10, 22],
[11, 23]]])
``````

I know that the `.moveaxis` function is meant to ‘move axis 0 to a new position while the other axes remain the same order’, but what is the meaning of that? I understand that the result should be an array with shape `(3, 4, 2)`, but why would the system go down the first column in the first place then move on to the second page? Any help on understanding the mechanism behind `.moveaxis` is appreciated.