Bird
Raised Fist0
NumPydata~5 mins

np.random.rand() and random arrays in NumPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: np.random.rand() and random arrays
O(n)
Understanding Time Complexity

We want to understand how the time to create random arrays grows as the array size increases.

How does the work done by np.random.rand() change when we ask for bigger arrays?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

import numpy as np

# Create a random array of size n
n = 1000
random_array = np.random.rand(n)

This code creates a one-dimensional array of length n filled with random numbers between 0 and 1.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Generating each random number independently.
  • How many times: Exactly n times, once for each element in the array.
How Execution Grows With Input

As the array size n grows, the number of random numbers generated grows linearly.

Input Size (n)Approx. Operations
1010 random number generations
100100 random number generations
10001000 random number generations

Pattern observation: Doubling the size doubles the work needed.

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: "Generating a random array is constant time because it's just one function call."

[OK] Correct: The function call creates many random numbers, one for each element, so the time grows with the array size.

Interview Connect

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

Self-Check

"What if we generate a 2D array with shape (n, n) using np.random.rand(n, n)? How would the time complexity change?"

Practice

(1/5)
1. What does the function np.random.rand(3, 2) do in NumPy?
easy
A. Creates a 3x2 array with random floats between 0 and 1
B. Creates a 3x2 array filled with zeros
C. Creates a 3x2 array with random integers
D. Creates a 3x2 array filled with ones

Solution

  1. Step 1: Understand np.random.rand() function

    This function generates random floats between 0 and 1.
  2. Step 2: Analyze the shape arguments (3, 2)

    The arguments specify the shape of the output array as 3 rows and 2 columns.
  3. Final Answer:

    Creates a 3x2 array with random floats between 0 and 1 -> Option A
  4. Quick Check:

    np.random.rand(3, 2) = 3x2 random floats [OK]
Hint: Remember rand() outputs floats in [0,1) with given shape [OK]
Common Mistakes:
  • Thinking it creates integers instead of floats
  • Confusing shape arguments with array values
  • Assuming it creates zeros or ones
2. Which of the following is the correct syntax to create a 1D array of 5 random floats using np.random.rand()?
easy
A. np.random.rand(5)
B. np.random.rand[5]
C. np.random.rand((5))
D. np.random.rand{5}

Solution

  1. Step 1: Recall correct function call syntax

    Functions use parentheses () to pass arguments, not brackets [] or braces {}.
  2. Step 2: Check argument for array size

    Passing 5 inside parentheses creates a 1D array of length 5.
  3. Final Answer:

    np.random.rand(5) -> Option A
  4. Quick Check:

    Correct function call uses parentheses ( ) [OK]
Hint: Use parentheses () for function calls, not brackets or braces [OK]
Common Mistakes:
  • Using square brackets [] instead of parentheses
  • Using curly braces {} which are invalid syntax
  • Adding extra parentheses unnecessarily
3. What is the shape and type of the output from this code?
import numpy as np
arr = np.random.rand(2, 4)
print(arr.shape, type(arr))
medium
A. (4, 2) <class 'numpy.ndarray'>
B. (2, 4) <class 'list'>
C. (2, 4) <class 'numpy.ndarray'>
D. (4, 2) <class 'list'>

Solution

  1. Step 1: Understand np.random.rand(2, 4) output

    This creates a NumPy array with shape (2, 4) filled with random floats.
  2. Step 2: Check the type of the variable arr

    It is a NumPy ndarray, not a Python list.
  3. Final Answer:

    (2, 4) <class 'numpy.ndarray'> -> Option C
  4. Quick Check:

    Shape and type match NumPy array output [OK]
Hint: np.random.rand dims = shape; output is always ndarray [OK]
Common Mistakes:
  • Confusing shape order (2,4) vs (4,2)
  • Thinking output is a Python list
  • Misreading print output format
4. Identify the error in this code snippet:
import numpy as np
arr = np.random.rand[3, 3]
print(arr)
medium
A. Shape arguments should be strings
B. Missing import statement for numpy
C. Incorrect print syntax
D. Using square brackets [] instead of parentheses () for function call

Solution

  1. Step 1: Check function call syntax

    np.random.rand is a function and must be called with parentheses (), not square brackets [].
  2. Step 2: Verify other parts of code

    Import is correct, print syntax is valid, shape arguments are integers as required.
  3. Final Answer:

    Using square brackets [] instead of parentheses () for function call -> Option D
  4. Quick Check:

    Function calls need parentheses ( ) [OK]
Hint: Always use () to call functions, not [] [OK]
Common Mistakes:
  • Using [] instead of () for function calls
  • Assuming shape args must be strings
  • Thinking print syntax is wrong
5. You want to create a 2D array with 3 rows and 4 columns filled with random floats between 0 and 1, then multiply all values by 10 to scale them. Which code correctly does this?
hard
A. arr = np.random.rand(12) * 10
B. arr = np.random.rand(3, 4) * 10
C. arr = np.random.rand(3) * 4 * 10
D. arr = np.random.rand(3, 4) + 10

Solution

  1. Step 1: Create a 3x4 array of random floats

    Use np.random.rand(3, 4) to get a 2D array with 3 rows and 4 columns.
  2. Step 2: Scale all values by 10

    Multiply the entire array by 10 to scale values from [0,1) to [0,10).
  3. Final Answer:

    arr = np.random.rand(3, 4) * 10 -> Option B
  4. Quick Check:

    Shape and scaling done correctly [OK]
Hint: Multiply after rand() to scale values, keep shape in arguments [OK]
Common Mistakes:
  • Adding 10 instead of multiplying
  • Using wrong shape arguments
  • Creating 1D array instead of 2D
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