Bird
Raised Fist0
NumPydata~10 mins

Uniform random with random() in NumPy - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Uniform random with random()
Call np.random.random()
↓
Return random float
↓
Use or store the float
↓
Repeat if needed
The function np.random.random() generates a random float between 0 and 1 each time it is called.
Execution Sample
NumPy
import numpy as np
x = np.random.random()
print(x)
This code generates one random float between 0 and 1 and prints it.
Execution Table
StepActionEvaluationResult
1Call np.random.random()Generates a random float in [0,1)0.3745401188473625
2Assign to variable xx = 0.3745401188473625x holds 0.3745401188473625
3Print xOutput the value of xPrints 0.3745401188473625
4EndNo more codeExecution stops
💡 Execution stops after printing the random float.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
xundefined0.37454011884736250.37454011884736250.3745401188473625
Key Moments - 2 Insights
Why is the random number always between 0 and 1?
np.random.random() is designed to generate floats in the range [0,1), so it never returns values less than 0 or equal/greater than 1, as shown in Step 1 of the execution_table.
Does np.random.random() generate the same number every time?
No, each call generates a new random float. The number in Step 1 is just one example; if you run it again, you get a different number.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of x after Step 2?
A0.3745401188473625
Bundefined
CNone
D1.0
💡 Hint
Check the 'After Step 2' column for variable x in variable_tracker.
At which step is the random float generated?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'Action' and 'Evaluation' columns in execution_table.
If you call np.random.random() twice, what changes in the execution_table?
AThe random float is always the same
BTwo different random floats are generated in Step 1 and Step 2
CThe variable x holds two values at once
DThe code stops after first call
💡 Hint
Recall that each call to np.random.random() generates a new random float.
Concept Snapshot
np.random.random() generates a float in [0,1).
Each call returns a new random number.
Use it to get uniform random floats.
Assign to variables to store values.
Useful for simulations and sampling.
Full Transcript
This lesson shows how np.random.random() works. When you call it, it creates a random float between 0 and 1. The code example calls it once, stores the result in x, and prints x. The execution table traces each step: calling the function, assigning the value, printing, and stopping. The variable tracker shows x changes from undefined to the random float after assignment. Key moments clarify that the number is always between 0 and 1 and changes each call. The quiz tests understanding of variable values and function behavior. The snapshot summarizes the key points for quick review.

Practice

(1/5)
1.

What does numpy.random.random() generate by default?

easy
A. A single random number between 0 and 1
B. A random integer between 0 and 1
C. A random number between -1 and 1
D. A list of random numbers

Solution

  1. Step 1: Understand the function purpose

    numpy.random.random() generates random floats in the range [0.0, 1.0).
  2. Step 2: Check default behavior

    Without any size argument, it returns a single float number between 0 and 1.
  3. Final Answer:

    A single random number between 0 and 1 -> Option A
  4. Quick Check:

    random() = single float [OK]
Hint: No size means one float between 0 and 1 [OK]
Common Mistakes:
  • Thinking it returns integers
  • Assuming range is -1 to 1
  • Expecting an array without size
2.

Which of the following is the correct syntax to generate a 2x3 array of uniform random numbers using numpy.random.random()?

easy
A. numpy.random.random((2,3))
B. numpy.random.random[2,3]
C. numpy.random.random{2,3}
D. numpy.random.random(2,3)

Solution

  1. Step 1: Recall correct function call

    The size parameter expects a tuple for shape, so use parentheses and commas inside.
  2. Step 2: Check syntax options

    Only numpy.random.random((2,3)) correctly passes a tuple for size.
  3. Final Answer:

    numpy.random.random((2,3)) -> Option A
  4. Quick Check:

    Tuple size = (2,3) [OK]
Hint: Use double parentheses for size tuple [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Passing size as separate arguments
  • Using curly braces instead of parentheses
3.

What is the output shape of the following code?

import numpy as np
arr = np.random.random(5)
medium
A. (1,5)
B. (5,1)
C. (5,)
D. 5

Solution

  1. Step 1: Understand the size parameter

    Passing 5 as size creates a 1D array with 5 elements.
  2. Step 2: Determine shape of the array

    A 1D array with 5 elements has shape (5,), not (1,5) or (5,1).
  3. Final Answer:

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

    random(5) shape = (5,) [OK]
Hint: Single integer size makes 1D array shape (n,) [OK]
Common Mistakes:
  • Confusing 1D shape with 2D shapes
  • Expecting a scalar output
  • Assuming shape is (1,5) or (5,1)
4.

Identify the error in this code snippet:

import numpy as np
arr = np.random.random[3,4]
medium
A. Size parameter must be a single integer
B. Missing import statement
C. random() does not accept size argument
D. Using square brackets instead of parentheses for function call

Solution

  1. Step 1: Check function call syntax

    Functions in Python require parentheses, not square brackets.
  2. Step 2: Identify the error

    Using square brackets [] causes a syntax error; correct is random((3,4)).
  3. Final Answer:

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

    Function calls need parentheses [OK]
Hint: Function calls always use parentheses () [OK]
Common Mistakes:
  • Using square brackets for function calls
  • Confusing size argument type
  • Assuming random() can't take size
5.

You want to create a 3x3 matrix of uniform random numbers but only want numbers greater than 0.5. Which code correctly achieves this?

hard
A. np.random.random((3,3))[np.random.random((3,3)) > 0.5]
B. np.random.random((3,3)) + 0.5
C. np.random.random((3,3)) * 0.5
D. np.random.random((3,3)) > 0.5

Solution

  1. Step 1: Understand the goal

    Create a 3x3 matrix where all uniform random numbers are greater than 0.5.
  2. Step 2: Analyze each option

    A indexes one random array with a mask from another, yielding a 1D array with values in [0,1) including some <0.5. B returns a 3x3 boolean array. C produces values in [0,0.5]. D shifts values to [0.5,1.5), ensuring all ≥0.5.
  3. Final Answer:

    np.random.random((3,3)) + 0.5 -> Option B
  4. Quick Check:

    +0.5 shifts to [0.5, 1.5) all >0.5 [OK]
Hint: Shift range by adding 0.5 to make all >0.5 [OK]
Common Mistakes:
  • Boolean indexing with different array (A: values can be <0.5, shape changes)
  • Comparison returns booleans (B)
  • Scaling down makes values ≤0.5 (C)