We convert between NumPy arrays and Python lists to use the best features of both. Lists are easy to use and flexible, while arrays are fast for math.
Converting to and from Python lists in NumPy
import numpy as np # Convert Python list to NumPy array python_list = [1, 2, 3] numpy_array = np.array(python_list) # Convert NumPy array to Python list converted_list = numpy_array.tolist()
Use np.array() to convert a Python list to a NumPy array.
Use array.tolist() to convert a NumPy array back to a Python list.
import numpy as np # Empty list to array empty_list = [] empty_array = np.array(empty_list) print(empty_array) # Array to list when array has one element single_element_array = np.array([42]) single_element_list = single_element_array.tolist() print(single_element_list)
import numpy as np # List with nested lists to 2D array nested_list = [[1, 2], [3, 4]] array_2d = np.array(nested_list) print(array_2d) # Convert 2D array back to nested list list_2d = array_2d.tolist() print(list_2d)
import numpy as np # List with mixed types mixed_list = [1, 2.5, '3'] mixed_array = np.array(mixed_list) print(mixed_array) # Convert back to list back_to_list = mixed_array.tolist() print(back_to_list)
This program shows how to convert a Python list to a NumPy array, do a math operation, and convert back to a list.
import numpy as np # Create a Python list original_list = [10, 20, 30, 40] print('Original Python list:', original_list) # Convert list to NumPy array array_from_list = np.array(original_list) print('Converted to NumPy array:', array_from_list) # Perform a simple operation on the array array_from_list = array_from_list * 2 print('Array after multiplication by 2:', array_from_list) # Convert the array back to a Python list list_from_array = array_from_list.tolist() print('Converted back to Python list:', list_from_array)
Converting a list to a NumPy array is fast and allows vectorized math operations.
Converting back to a list is useful when you need Python-native data structures.
Be careful with mixed data types in lists; NumPy will convert them to a common type, often strings.
Time complexity for conversion is O(n), where n is the number of elements.
Space complexity is O(n) because a new object is created during conversion.
Use arrays when doing math, lists when you need flexibility or compatibility with Python functions.
Use np.array() to convert Python lists to NumPy arrays for fast math.
Use array.tolist() to convert NumPy arrays back to Python lists for flexibility.
Conversions are simple but watch out for data types and empty or nested lists.
Practice
np.array() do when given a Python list?Solution
Step 1: Understand np.array() purpose
The functionnp.array()is designed to take a Python list and create a NumPy array from it.Step 2: Compare options with function behavior
Only It converts the Python list into a NumPy array. correctly states that it converts a list to a NumPy array. Other options describe unrelated actions.Final Answer:
It converts the Python list into a NumPy array. -> Option CQuick Check:
np.array(list) = NumPy array [OK]
- Thinking np.array() converts to dict or string
- Confusing np.array() with list methods
- Assuming np.array() deletes data
arr back to a Python list?Solution
Step 1: Recall the method to convert NumPy array to list
The correct method istolist()called on the array object.Step 2: Check each option's syntax
arr.tolist()usesarr.tolist(), which is correct.arr.to_list()has a wrong method name. Options C and D are invalid syntax.Final Answer:
arr.tolist() -> Option AQuick Check:
array.tolist() converts to list [OK]
- Using arr.to_list() instead of arr.tolist()
- Trying to call tolist() as a standalone function
- Incorrect method chaining or syntax errors
import numpy as np lst = [1, 2, 3] arr = np.array(lst) print(arr.tolist())
Solution
Step 1: Convert list to NumPy array
The list[1, 2, 3]is converted to a NumPy arrayarrwith values [1 2 3].Step 2: Convert NumPy array back to list
Callingarr.tolist()converts the array back to a Python list[1, 2, 3].Final Answer:
[1, 2, 3] -> Option DQuick Check:
arr.tolist() = original list [OK]
- Expecting array output instead of list
- Confusing print output with array representation
- Thinking it returns nested lists
import numpy as np lst = [1, 2, 3] arr = np.array(lst) new_list = arr.to_list()
Solution
Step 1: Check method names on NumPy arrays
The method to convert a NumPy array to a list istolist(), notto_list().Step 2: Identify the error in the code
Usingarr.to_list()causes an AttributeError because the method does not exist.Final Answer:
arr.to_list() is not a valid method -> Option AQuick Check:
Use arr.tolist(), not arr.to_list() [OK]
- Typing to_list() instead of tolist()
- Assuming np.array() fails on lists
- Forgetting to import numpy
nested = [[1, 2], [3, 4]]. Which code correctly converts it to a NumPy array and then back to a nested Python list?Solution
Step 1: Convert nested list to NumPy array
Usingnp.array(nested)converts the nested list into a 2D NumPy array.Step 2: Convert NumPy array back to nested list
Callingarr.tolist()converts the 2D array back to the original nested Python list structure.Final Answer:
arr = np.array(nested) new_list = arr.tolist() -> Option BQuick Check:
np.array() + tolist() preserves nested lists [OK]
- Using list(arr) which flattens the array
- Calling arr.to_list() which is invalid
- Trying to convert list before np.array()
Ready to prove it?
Pass the test and this pattern moves unknown
