Convert NumPy array to list in python

In this article we will discuss how to convert a 1D or 2D or 3D Numpy Array to a list or list of lists.

Table of Contents

Convert Numpy Array to List

ndarray class of Numpy Module in Python provides a member function tolist(), which returns a list containing the copy of elements in array. So, we can use that to convert a numpy array to a list. For example,

import numpy as np

# Create a Numpy Array
arr = np.array([11, 22, 33, 44, 55])

print('Numpy Array:', arr)

# Convert Numpy Array to list
num_list = arr.tolist()

print('List: ', num_list)

Output:

Numpy Array: [11 22 33 44 55]
List:  [11, 22, 33, 44, 55]

numpy.ndarray.tolist() function returns a list (nested if required) containing copy of elements. But what if we try to convert a 2D Numpy array to list?

Advertisements

Convert 2D Numpy array to list of lists

When we call tolist() function on a 2D numpy Array, then it returns a nested list i.e. a list of lists in python. Also, all elements in the list of lists will be the copy of elements in 2D numpy array. For example,

import numpy as np

# Create 2D Numpy Array
arr = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [3, 3, 3, 3]])

print('2D Numpy Array:')
print(arr)

# Convert Numpy Array to list of lists
list_of_lists = arr.tolist()

print('List of lists:')
print(list_of_lists)

Output:

2D Numpy Array:
[[1 2 3 4]
 [5 6 7 8]
 [3 3 3 3]]
List of lists:
[[1, 2, 3, 4], [5, 6, 7, 8], [3, 3, 3, 3]]

Convert 2D Numpy Array to a flattened list

numpy.ndarray.tolist() always returned a nested list for a 2D Numpy Array. But if we want to convert a 2D Numpy array to a flattened list i.e. a single list, then we need to first flattened the 2D Numpy array to 1D array and then call tolist() function on it. For example,

import numpy as np

# Create 2D Numpy Array
arr = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [3, 3, 3, 3]])

print('2D Numpy Array:')
print(arr)

# Convert 2D Numpy array toa single list
num_list = arr.flatten().tolist()

print('List:', num_list)

Output:

import numpy as np

# Create 2D Numpy Array
arr = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [3, 3, 3, 3]])

print('2D Numpy Array:')
print(arr)

# Convert 2D Numpy array toa single list
num_list = arr.flatten().tolist()

print('List:', num_list)

Convert 3D Numpy array to nested list

Similar to previous examples, we can use the tolist() function to convert a 3D Numpy array to list of nested lists. For example,

import numpy as np

# Create 3D Numpy Array
arr = np.ones( (2,4,5) , dtype=np.int64)

print('3D Numpy Array:')
print(arr)

# Convert 3D Numpy Array to nested list
nested_list = arr.tolist()

print('Nested list:')
print(nested_list)

Output:

3D Numpy Array:
[[[1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]]

 [[1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]]]
Nested list:
[[[1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1]],
 [[1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1],
 [1, 1, 1, 1, 1]]]

Convert 3D Numpy Array to a flat list

To convert a 3D numpy array to a single flat list, we need to first flatten the 3D numpy array to a 1D numpy array using the flatten() function and then call tolist() on that flatten array to create flat list. For example,

import numpy as np

# Create 3D Numpy Array
arr = np.ones( (2,4,5) , dtype=np.int64)

print('3D Numpy Array:')
print(arr)

# Convert 3D Numpy Array to flat list
flat_list = arr.flatten().tolist()

print('Flat list:')
print(flat_list)

Output:

3D Numpy Array:
[[[1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]]

 [[1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]
  [1 1 1 1 1]]]
Flat list:
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Summary:

We learned how to convert a 1D / 2D / 3D Numpy array to list or list of lists in python.

Pandas Tutorials -Learn Data Analysis with Python

   

Are you looking to make a career in Data Science with Python?

Data Science is the future, and the future is here now. Data Scientists are now the most sought-after professionals today. To become a good Data Scientist or to make a career switch in Data Science one must possess the right skill set. We have curated a list of Best Professional Certificate in Data Science with Python. These courses will teach you the programming tools for Data Science like Pandas, NumPy, Matplotlib, Seaborn and how to use these libraries to implement Machine learning models.

Checkout the Detailed Review of Best Professional Certificate in Data Science with Python.

Remember, Data Science requires a lot of patience, persistence, and practice. So, start learning today.

Join a LinkedIn Community of Python Developers

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top