There are a few ways of converting a numpy array to a python list. The numpy ndarray object has a handy tolist()
function that you can use to convert the respect numpy array to a list. You can also use the Python built-in list()
function to get a list from a numpy array. Let’s see their usage through some examples.
1. Using numpy ndarray tolist()
function
It returns a copy of the array data as a Python list. The list may be nested depending on the dimensionality of the numpy array. The following is the syntax:
# arr is a numpy array ls = arr.tolist()
Note that the tolist()
function does not take any arguments. Also, in the list returned, the data items do not retain their numpy data types, they are converted to their nearest compatible built-in Python types.
Let’s look at some the examples of using the numpy ndarray tolist()
function.
1.1 Convert a 1D numpy array to a list
import numpy as np # sample numpy 1D array arr = np.array([1,2,3,4]) # print print("Numpy array: ", arr) print("Type: ",type(arr)) # convert to a list ls = arr.tolist() # print print("\nList: ", ls) print("Type: ",type(ls))
Output:
Numpy array: [1 2 3 4] Type: <class 'numpy.ndarray'> List: [1, 2, 3, 4] Type: <class 'list'>
In the above example, the tolist()
function is applied to the numpy array arr
and the returned list is saved to ls
.
1.2 Convert a 2D numpy array to a list
import numpy as np # sample numpy 2D array arr = np.array([[1,2,3],[4,5,6]]) # print print("Numpy array: ", arr) print("Type: ",type(arr)) # convert to a list ls = arr.tolist() # print print("\nList: ", ls) print("Type: ",type(ls))
Output:
Introductory ⭐
- Harvard University Data Science: Learn R Basics for Data Science
- Standford University Data Science: Introduction to Machine Learning
- UC Davis Data Science: Learn SQL Basics for Data Science
- IBM Data Science: Professional Certificate in Data Science
- IBM Data Analysis: Professional Certificate in Data Analytics
- Google Data Analysis: Professional Certificate in Data Analytics
- IBM Data Science: Professional Certificate in Python Data Science
- IBM Data Engineering Fundamentals: Python Basics for Data Science
Intermediate ⭐⭐⭐
- Harvard University Learning Python for Data Science: Introduction to Data Science with Python
- Harvard University Computer Science Courses: Using Python for Research
- IBM Python Data Science: Visualizing Data with Python
- DeepLearning.AI Data Science and Machine Learning: Deep Learning Specialization
Advanced ⭐⭐⭐⭐⭐
- UC San Diego Data Science: Python for Data Science
- UC San Diego Data Science: Probability and Statistics in Data Science using Python
- Google Data Analysis: Professional Certificate in Advanced Data Analytics
- MIT Statistics and Data Science: Machine Learning with Python - from Linear Models to Deep Learning
- MIT Statistics and Data Science: MicroMasters® Program in Statistics and Data Science
🔎 Find Data Science Programs 👨💻 111,889 already enrolled
Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.
Numpy array: [[1 2 3] [4 5 6]] Type: <class 'numpy.ndarray'> List: [[1, 2, 3], [4, 5, 6]] Type: <class 'list'>
Note that the returned list is nested because the numpy array was multi-dimensional.
2. Using the built-in list()
function
You can also use the built-in Python function list()
to convert a numpy array. The following is the syntax:
# arr is a numpy array ls = list(arr)
Let’s look at some the examples of using the list()
function.
2.1 Convert a 1D array to a list
import numpy as np # sample numpy 1D array arr = np.array([1,2,3,4]) # print print("Numpy array: ", arr) print("Type: ",type(arr)) # convert to a list using list() ls = list(arr) # print print("\nList: ", ls) print("Type: ",type(ls))
Output:
Numpy array: [1 2 3 4] Type: <class 'numpy.ndarray'> List: [1, 2, 3, 4] Type: <class 'list'>
In the above example, the list()
function is applied on the numpy array arr
and the returned list is saved to ls
.
2.2 Convert a 2D array to a list
import numpy as np # sample numpy 2D array arr = np.array([[1,2,3],[4,5,6]]) # print print("Numpy array: ", arr) print("Type: ",type(arr)) # convert to a list using list() ls = list(arr) # print print("\nList: ", ls) print("Type: ",type(ls))
Output:
Numpy array: [[1 2 3] [4 5 6]] Type: <class 'numpy.ndarray'> List: [array([1, 2, 3]), array([4, 5, 6])] Type: <class 'list'>
Using the list()
function on multi-dimensional array returns a list of numpy arrays.
print(type(ls[0]))
Output:
<class 'numpy.ndarray'>
3. Difference between numpy ndarray tolist()
and the built-in list()
functions
The above examples illustrated the usage of the two functions. The returned lists were different when these functions were applied to a multi-dimensional array. There is, however, one more major difference between the two. With the numpy ndarray tolist()
function, the data items are converted to their nearest compatible built-in Python types whereas, with the list()
function, the numpy types of the data items are preserved. See the example below:
import numpy as np # sample numpy 1D array arr = np.array([1,2,3,4]) # convert to a list using tolist() ls1 = arr.tolist() # convert to a list using list() ls2 = list(arr) # print ls1 print("ls1: ", ls1) print("Type of items: ",[type(i) for i in ls1]) # print ls2 print("\nls2: ", ls2) print("Type of items: ",[type(i) for i in ls2])
Output:
ls1: [1, 2, 3, 4] Type of items: [<class 'int'>, <class 'int'>, <class 'int'>, <class 'int'>] ls2: [1, 2, 3, 4] Type of items: [<class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.int32'>, <class 'numpy.int32'>]
You can see that in the list returned by the tolist()
function, ls1
, each item has been converted to its compatible python data type whereas, in the list returned by the list()
function, ls2
, each item retains its type from the numpy array.
4. Conclusion
Generally, when converting a numpy array to a Python list, use the numpy ndarray tolist()
function. It returns a list with python compatible types and works well with multidimensional arrays. Use the list()
function when you want to retain the numpy types.
For more on the numpy ndarray tolist()
function, refer to its offical documentation.
With this, we come to the end of this tutorial. The code examples and results presented in this tutorial have been implemented in a Jupyter Notebook with a python (version 3.8.3) kernel having numpy version 1.18.5
Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.
Tutorials on python lists:
- Python – Check if an element is in a list
- Python – Iterate over multiple lists in parallel using zip()
- Python – Flatten a list of lists to a single list
- Pandas DataFrame to a List in Python
- Python – Convert List to a String
- Convert Numpy array to a List – With Examples
- Python List Comprehension – With Examples
- Python List Index – With Examples
- Python List Count Item Frequency
- Python List Length
- Python Sort a list – With Examples
- Python Reverse a List – With Examples
- Python Remove Duplicates from a List
- Python list append, extend and insert functions.
- Python list remove, pop and clear functions.