Bird
Raised Fist0
NumPydata~5 mins

np.arange() for range arrays in NumPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: np.arange() for range arrays
O(n)
Understanding Time Complexity

We want to understand how the time to create arrays with np.arange() changes as the size of the array grows.

How does the work needed grow when we ask for bigger ranges?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

import numpy as np

arr = np.arange(0, n, 1)

This code creates a NumPy array starting at 0 up to (but not including) n, stepping by 1.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Filling each element of the array with a value from 0 to n-1.
  • How many times: Exactly n times, once for each element.
How Execution Grows With Input

As n grows, the number of operations grows directly with n because each element must be set.

Input Size (n)Approx. Operations
1010
100100
10001000

Pattern observation: The operations grow in a straight line with the input size.

Final Time Complexity

Time Complexity: O(n)

This means the time to create the array grows directly in proportion to the number of elements requested.

Common Mistake

[X] Wrong: "Creating an array with np.arange() is instant and does not depend on size."

[OK] Correct: Even though np.arange() is fast, it still needs to fill each element, so time grows with the number of elements.

Interview Connect

Understanding how array creation scales helps you reason about data preparation steps in real projects and interviews.

Self-Check

What if we changed the step size from 1 to 2? How would the time complexity change?

Practice

(1/5)
1. What does np.arange(3) produce?
easy
A. [0, 1, 2]
B. [1, 2, 3]
C. [0, 1, 2, 3]
D. [3]

Solution

  1. Step 1: Understand default start value

    If only one number is given, np.arange starts from 0 by default.
  2. Step 2: Identify stop value exclusion

    The stop value 3 is excluded, so the array includes 0, 1, 2.
  3. Final Answer:

    [0, 1, 2] -> Option A
  4. Quick Check:

    Start=0, stop=3 excluded, so [0,1,2] [OK]
Hint: Remember: stop value is NOT included in output [OK]
Common Mistakes:
  • Including the stop value in the array
  • Starting from 1 instead of 0
  • Confusing step with stop
2. Which of these is the correct syntax to create an array from 2 to 6 (excluding 6) with step 1 using np.arange()?
easy
A. np.arange(6, 2, 1)
B. np.arange(2, 6, 0)
C. np.arange(2, 7)
D. np.arange(2, 6, 1)

Solution

  1. Step 1: Check start, stop, and step order

    Start should be less than stop for positive step; step cannot be zero.
  2. Step 2: Validate each option

    np.arange(2, 6, 1) uses start=2, stop=6, step=1 correctly. np.arange(6, 2, 1) reverses start and stop. np.arange(2, 7) sets stop=7, producing [2 3 4 5 6] which includes 6. np.arange(2, 6, 0) has step=0 which is invalid.
  3. Final Answer:

    np.arange(2, 6, 1) -> Option D
  4. Quick Check:

    Start=2, stop=6, step=1 is correct syntax [OK]
Hint: Step must not be zero; start < stop for positive step [OK]
Common Mistakes:
  • Using zero as step value
  • Reversing start and stop values
  • Using wrong stop value
3. What is the output of this code?
import numpy as np
arr = np.arange(1, 10, 3)
print(arr)
medium
A. [1 4 7]
B. [1 3 6 9]
C. [1 2 3 4 5 6 7 8 9]
D. [3 6 9]

Solution

  1. Step 1: Understand parameters of np.arange

    Start=1, stop=10 (excluded), step=3 means numbers start at 1 and increase by 3 until less than 10.
  2. Step 2: Calculate values

    Values are 1, 4 (1+3), 7 (4+3). Next would be 10 which is excluded.
  3. Final Answer:

    [1 4 7] -> Option A
  4. Quick Check:

    Start=1, step=3, stop=10 excluded gives [1,4,7] [OK]
Hint: Add step repeatedly until reaching stop (excluded) [OK]
Common Mistakes:
  • Including stop value 10
  • Adding step incorrectly
  • Confusing step with stop
4. What is wrong with this code?
import numpy as np
arr = np.arange(5, 2, 1)
print(arr)
medium
A. It raises a ValueError
B. It produces an empty array
C. It produces [5, 4, 3]
D. It produces [2, 3, 4, 5]

Solution

  1. Step 1: Analyze start, stop, and step values

    Start=5, stop=2, step=1 means counting up from 5 to less than 2, which is impossible.
  2. Step 2: Understand np.arange behavior

    Since step is positive but start > stop, no values satisfy condition, so result is empty array.
  3. Final Answer:

    It produces an empty array -> Option B
  4. Quick Check:

    Positive step with start > stop gives empty array [OK]
Hint: Positive step needs start < stop to produce values [OK]
Common Mistakes:
  • Expecting reversed array without negative step
  • Thinking it raises error
  • Confusing start and stop order
5. You want to create an array starting at 10, decreasing by 2, stopping before 0. Which np.arange() call is correct?
hard
A. np.arange(0, 10, -2)
B. np.arange(10, 0, 2)
C. np.arange(10, 0, -2)
D. np.arange(0, 10, 2)

Solution

  1. Step 1: Identify start, stop, and step for decreasing sequence

    Start=10, stop=0 (excluded), step must be negative to decrease.
  2. Step 2: Check each option

    np.arange(10, 0, -2) uses step=-2 correctly. np.arange(10, 0, 2) has positive step, so no values. Options C and D start at 0, which is not desired.
  3. Final Answer:

    np.arange(10, 0, -2) -> Option C
  4. Quick Check:

    Decreasing sequence needs negative step [OK]
Hint: Use negative step to count down in np.arange [OK]
Common Mistakes:
  • Using positive step for decreasing sequence
  • Swapping start and stop values
  • Starting at stop value instead of start
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