The numpy stores data in row major order.
>>> a = np.array([[1,2,3,4], [5,6,7,8]])
>>> a.shape
(2, 4)
>>> a.shape = 4,2
>>> a
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
If you change the shape, the order of data do not change.
If you add a ‘F’, you can get what you want.
>>> b
array([1, 2, 3, 4, 5, 6])
>>> c = b.reshape(2,3,order="F")
>>> c
array([[1, 3, 5],
[2, 4, 6]])