# numpy – Python reshape list to ndim array

## numpy – Python reshape list to ndim array

You can think of reshaping that the new shape is filled row by row (last dimension varies fastest) from the flattened original list/array.

An easy solution is to shape the list into a (100, 28) array and then transpose it:

``````x = np.reshape(list_data, (100, 28)).T
``````

Update regarding the updated example:

``````np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (4, 2)).T
# array([[0, 1, 2, 3],
#        [0, 1, 2, 3]])

np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (2, 4))
# array([[0, 0, 1, 1],
#        [2, 2, 3, 3]])
``````

Step by step:

``````# import numpy library
import numpy as np
# create list
my_list = [0,0,1,1,2,2,3,3]
# convert list to numpy array
np_array=np.asarray(my_list)
# reshape array into 4 rows x 2 columns, and transpose the result
reshaped_array = np_array.reshape(4, 2).T

#check the result
reshaped_array
array([[0, 1, 2, 3],
[0, 1, 2, 3]])
``````

#### numpy – Python reshape list to ndim array

You can specify the interpretation order of the axes using the `order` parameter:

``````np.reshape(arr, (2, -1), order=F)
``````