Bird
Raised Fist0
NumPydata~5 mins

np.array() from Python lists in NumPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: np.array() from Python lists
O(n)
Understanding Time 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.

Scenario Under Consideration

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 Repeating Operations

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.
How Execution Grows With Input

As the list size grows, the time to copy grows proportionally.

Input Size (n)Approx. Operations
10About 10 copy steps
100About 100 copy steps
1000About 1000 copy steps

Pattern observation: Doubling the list size roughly doubles the time needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to create the numpy array grows directly with the number of elements in the list.

Common Mistake

[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.

Interview Connect

Understanding how data conversion scales helps you explain performance in real projects and shows you know how data structures work under the hood.

Self-Check

"What if we create a numpy array directly from a generator instead of a list? How would the time complexity change?"

Practice

(1/5)
1. What does np.array() do when given a Python list?
easy
A. It converts the list into a numpy array for easier math operations.
B. It changes the list into a Python dictionary.
C. It sorts the list in ascending order.
D. It removes duplicates from the list.

Solution

  1. Step 1: Understand the purpose of np.array()

    np.array() is designed to convert Python lists into numpy arrays.
  2. Step 2: Recognize the benefit of numpy arrays

    Numpy arrays allow fast, element-wise math operations that lists do not support.
  3. Final Answer:

    It converts the list into a numpy array for easier math operations. -> Option A
  4. Quick Check:

    np.array() converts lists to arrays [OK]
Hint: np.array() turns lists into arrays for math [OK]
Common Mistakes:
  • Thinking np.array() sorts the list
  • Confusing arrays with dictionaries
  • Assuming it removes duplicates
2. Which of the following is the correct syntax to create a numpy array from a Python list [1, 2, 3]?
easy
A. np.array{1, 2, 3}
B. np.array[[1, 2, 3]]
C. np.array(1, 2, 3)
D. np.array([1, 2, 3])

Solution

  1. Step 1: Recall correct function call syntax

    np.array() requires parentheses and a list inside, like np.array([1, 2, 3]).
  2. Step 2: Identify syntax errors in other options

    np.array{1, 2, 3} uses curly braces which is invalid; C passes multiple arguments instead of one list; D uses double brackets incorrectly.
  3. Final Answer:

    np.array([1, 2, 3]) -> Option D
  4. Quick Check:

    np.array() needs a list inside parentheses [OK]
Hint: Use parentheses and a list inside for np.array() [OK]
Common Mistakes:
  • Using curly braces instead of parentheses
  • Passing multiple arguments instead of a single list
  • Using double brackets incorrectly
3. What will be the output of this code?
import numpy as np
lst = [[1, 2], [3, 4]]
arr = np.array(lst)
print(arr.shape)
medium
A. (1, 4)
B. (4,)
C. (2, 2)
D. Error

Solution

  1. Step 1: Understand the input list shape

    The list has 2 sublists, each with 2 elements, so shape is 2 rows and 2 columns.
  2. Step 2: Check numpy array shape property

    np.array converts nested lists into 2D arrays with shape (2, 2).
  3. Final Answer:

    (2, 2) -> Option C
  4. Quick Check:

    Nested list shape = (2, 2) [OK]
Hint: Shape matches nested list dimensions [OK]
Common Mistakes:
  • Thinking shape is (4,)
  • Assuming shape is (1, 4)
  • Expecting an error for nested lists
4. What is wrong with this code snippet?
import numpy as np
lst = [1, 2, 3]
arr = np.array(lst, 5)
print(arr)
medium
A. The list contains integers which are not allowed.
B. np.array() does not take a second positional argument like 5.
C. The print statement is missing parentheses.
D. The list must be nested to convert to an array.

Solution

  1. Step 1: Check np.array() function signature

    np.array() takes the data as the first argument; a second positional argument like 5 is invalid.
  2. Step 2: Identify the error caused by extra argument

    Passing 5 as a second positional argument causes a TypeError.
  3. Final Answer:

    np.array() does not take a second positional argument like 5. -> Option B
  4. Quick Check:

    Extra positional arguments cause error [OK]
Hint: np.array() takes one main argument: the list [OK]
Common Mistakes:
  • Thinking list must be nested
  • Forgetting print() needs parentheses (Python 3)
  • Believing integers are not allowed in arrays
5. You have a list of lists representing daily temperatures for a week:
temps = [[20, 22, 19], [21, 23, 20], [19, 21, 18], [22, 24, 21], [20, 22, 19], [18, 20, 17], [21, 23, 20]]

How can you convert this into a numpy array and find the average temperature for each day?
hard
A. import numpy as np temps_arr = np.array(temps) daily_avg = temps_arr.mean(axis=1) print(daily_avg)
B. import numpy as np temps_arr = np.array(temps) daily_avg = temps_arr.mean(axis=0) print(daily_avg)
C. import numpy as np daily_avg = np.array(temps).sum() print(daily_avg)
D. import numpy as np temps_arr = np.array(temps) daily_avg = temps_arr.max(axis=1) print(daily_avg)

Solution

  1. Step 1: Convert list of lists to numpy array

    Use np.array(temps) to create a 2D array where each row is a day.
  2. Step 2: Calculate average temperature per day

    Use mean(axis=1) to compute average across columns (hours) for each row (day).
  3. Final Answer:

    import numpy as np temps_arr = np.array(temps) daily_avg = temps_arr.mean(axis=1) print(daily_avg) -> Option A
  4. Quick Check:

    mean(axis=1) averages rows (days) [OK]
Hint: Use mean(axis=1) to average rows (days) [OK]
Common Mistakes:
  • Using mean(axis=0) which averages columns (hours)
  • Using sum() without axis for average
  • Using max() instead of mean()
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard