np.array() from Python lists in NumPy - Time & Space Complexity
When we create a numpy array from a Python list, the computer copies data from the list into a new structure.
We want to know how the time needed grows as the list gets bigger.
Analyze the time complexity of the following code snippet.
import numpy as np
n = 10
py_list = [i for i in range(n)]
p_array = np.array(py_list)
This code creates a Python list of size n and then converts it into a numpy array.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Copying each element from the Python list into the numpy array.
- How many times: Once for each element, so n times.
As the list size grows, the time to copy grows proportionally.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 copy steps |
| 100 | About 100 copy steps |
| 1000 | About 1000 copy steps |
Pattern observation: Doubling the list size roughly doubles the time needed.
Time Complexity: O(n)
This means the time to create the numpy array grows directly with the number of elements in the list.
[X] Wrong: "Creating a numpy array from a list is instant and does not depend on list size."
[OK] Correct: The data must be copied element by element, so bigger lists take more time.
Understanding how data conversion scales helps you explain performance in real projects and shows you know how data structures work under the hood.
"What if we create a numpy array directly from a generator instead of a list? How would the time complexity change?"