# Converting NumPy array into Python List structure?

Use `tolist()`

:

`import numpy as np>>> np.array([[1,2,3],[4,5,6]]).tolist()[[1, 2, 3], [4, 5, 6]]`

Note that this converts the values from whatever numpy type they may have (e.g. np.int32 or np.float32) to the "nearest compatible Python type" (in a list). If you want to preserve the numpy data types, you could call list() on your array instead, and you'll end up with a list of numpy scalars. (Thanks to Mr_and_Mrs_D for pointing that out in a comment.)

The numpy .tolist method produces nested lists if the numpy array shape is 2D.

if flat lists are desired, the method below works.

`import numpy as npfrom itertools import chaina = [1,2,3,4,5,6,7,8,9]print type(a), len(a), anpa = np.asarray(a)print type(npa), npa.shape, "\n", npanpa = npa.reshape((3, 3))print type(npa), npa.shape, "\n", npaa = list(chain.from_iterable(npa))print type(a), len(a), a``