Bird
Raised Fist0
NumPydata~10 mins

np.random.default_rng() modern approach in NumPy - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a new random number generator using the modern numpy approach.

NumPy
rng = np.random.[1]()
Drag options to blanks, or click blank then click option'
Adefault_rng
Brandint
Crandom
Dseed
Attempts:
3 left
💡 Hint
Common Mistakes
Using older functions like np.random.seed() instead of default_rng()
Trying to call np.random.random() to create a generator
2fill in blank
medium

Complete the code to generate 5 random integers between 1 and 10 using the modern numpy random generator.

NumPy
rng = np.random.default_rng()
random_numbers = rng.integers([1], 11, size=5)
Drag options to blanks, or click blank then click option'
A5
B1
C0
D10
Attempts:
3 left
💡 Hint
Common Mistakes
Setting low to 0 which includes 0 in output
Setting high to 10 which excludes 10
3fill in blank
hard

Fix the error in the code to generate 3 random floats between 0 and 1 using the modern numpy random generator.

NumPy
rng = np.random.default_rng()
random_floats = rng.[1](3)
Drag options to blanks, or click blank then click option'
Arandom
Brandint
Cintegers
Dchoice
Attempts:
3 left
💡 Hint
Common Mistakes
Using integers() which returns integers
Using randint() which is not a method of the generator instance
4fill in blank
hard

Fill both blanks to create a random number generator with a fixed seed and generate 4 random integers from 0 to 9.

NumPy
rng = np.random.[1](12345)
numbers = rng.[2](0, 10, size=4)
Drag options to blanks, or click blank then click option'
Adefault_rng
Bintegers
Crandom
Dseed
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.random.seed() which does not return a generator
Using random() instead of integers() for integers
5fill in blank
hard

Fill all three blanks to create a dictionary of word lengths for words longer than 3 letters using a comprehension and the modern numpy random generator to shuffle the list.

NumPy
words = ['apple', 'bat', 'carrot', 'dog', 'elephant']
rng = np.random.[1]()
rng.shuffle(words)
lengths = {word: [2] for word in words if len(word) [3] 3}
Drag options to blanks, or click blank then click option'
Adefault_rng
Blen(word)
C>
Drandom
Attempts:
3 left
💡 Hint
Common Mistakes
Using random() instead of default_rng()
Using < instead of > in the condition
Using word instead of len(word) for the dictionary values

Practice

(1/5)
1. What does np.random.default_rng() do in NumPy?
easy
A. Creates a modern random number generator instance
B. Generates a fixed list of numbers
C. Imports the NumPy library
D. Sorts an array in ascending order

Solution

  1. Step 1: Understand the function purpose

    np.random.default_rng() creates a new random number generator object using the modern Generator API.
  2. Step 2: Compare with other options

    It does not generate fixed lists, import libraries, or sort arrays.
  3. Final Answer:

    Creates a modern random number generator instance -> Option A
  4. Quick Check:

    default_rng() = modern RNG instance [OK]
Hint: Remember default_rng() always creates a new RNG object [OK]
Common Mistakes:
  • Confusing it with random number generation output
  • Thinking it imports NumPy
  • Mixing it up with sorting functions
2. Which of the following is the correct way to create a random number generator with a seed of 42 using np.random.default_rng()?
easy
A. rng = np.random.default_rng(42, seed=42)
B. rng = np.random.default_rng(42)
C. rng = np.random.default_rng().seed(42)
D. rng = np.random.default_rng().random(42)

Solution

  1. Step 1: Check the correct syntax for seeding

    The seed is passed as an argument directly to default_rng(), so np.random.default_rng(42) is correct.
  2. Step 2: Evaluate other options

    rng = np.random.default_rng(42, seed=42) is invalid because it passes seed both positionally and as keyword, causing TypeError: multiple values for 'seed'. rng = np.random.default_rng().seed(42) tries to call seed() method which does not exist on the Generator. rng = np.random.default_rng().random(42) calls random(42) which generates numbers, not seeds.
  3. Final Answer:

    rng = np.random.default_rng(42) -> Option B
  4. Quick Check:

    Seed passed as argument = rng = np.random.default_rng(42) [OK]
Hint: Pass seed directly inside default_rng() parentheses [OK]
Common Mistakes:
  • Passing seed both positionally and as keyword argument
  • Calling seed() method on the generator
  • Confusing random() method with seeding
3. What is the output of this code?
import numpy as np
rng = np.random.default_rng(123)
print(rng.integers(1, 10, size=3))
medium
A. [3 3 7]
B. [3 1 7]
C. [2 3 7]
D. [3 3 6]

Solution

  1. Step 1: Understand the code

    The code creates a random number generator with seed 123, then generates 3 random integers between 1 (inclusive) and 10 (exclusive).
  2. Step 2: Run the code or recall output

    Running this code produces the array [3 3 7].
  3. Final Answer:

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

    Seed 123 + integers(1,10,3) = [3 3 7] [OK]
Hint: Seed fixes output; integers(1,10,3) gives same 3 numbers [OK]
Common Mistakes:
  • Assuming inclusive upper bound 10
  • Confusing seed effect on output
  • Mixing output with floats instead of integers
4. Identify the error in this code snippet:
import numpy as np
rng = np.random.default_rng()
random_numbers = rng.random(5, seed=10)
print(random_numbers)
medium
A. random() should be called without parentheses
B. default_rng() requires a seed argument
C. random() does not accept a seed argument
D. rng.random() returns integers, not floats

Solution

  1. Step 1: Check method signature of random()

    The random() method of the Generator does not accept a seed parameter; seeding is done when creating the generator.
  2. Step 2: Identify the error

    Passing seed=10 to random() causes a TypeError.
  3. Final Answer:

    random() does not accept a seed argument -> Option C
  4. Quick Check:

    Seed only in default_rng(), not in random() [OK]
Hint: Seed only when creating RNG, not in random() calls [OK]
Common Mistakes:
  • Trying to seed random() method
  • Thinking random() returns integers
  • Believing default_rng() needs seed always
5. You want to generate a reproducible shuffled version of the list [10, 20, 30, 40, 50] using np.random.default_rng(). Which code correctly achieves this?
hard
A. rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] rng.shuffle(arr) print(arr)
B. rng = np.random.default_rng() arr = [10, 20, 30, 40, 50] rng.shuffle(arr) print(arr)
C. rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] shuffled = np.random.shuffle(arr) print(shuffled)
D. rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] shuffled = rng.permutation(arr) print(shuffled)

Solution

  1. Step 1: Understand reproducible shuffling

    To get reproducible shuffling, seed the generator and use its methods. rng.shuffle() shuffles in-place and returns None, while rng.permutation() returns a shuffled copy.
  2. Step 2: Analyze options

    rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] rng.shuffle(arr) print(arr) fails because rng.shuffle() requires a NumPy ndarray but arr is a list (TypeError). rng = np.random.default_rng() arr = [10, 20, 30, 40, 50] rng.shuffle(arr) print(arr) has no seed, so not reproducible (also fails on list). rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] shuffled = np.random.shuffle(arr) print(shuffled) incorrectly uses np.random.shuffle() which ignores rng, requires ndarray (fails on list), and returns None. rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] shuffled = rng.permutation(arr) print(shuffled) seeds and uses permutation() to get a reproducible shuffled copy.
  3. Final Answer:

    rng = np.random.default_rng(7) arr = [10, 20, 30, 40, 50] shuffled = rng.permutation(arr) print(shuffled) -> Option D
  4. Quick Check:

    Seed + permutation() = reproducible shuffled copy [OK]
Hint: Use rng.permutation(arr) with seed for reproducible shuffle [OK]
Common Mistakes:
  • Using np.random.shuffle() ignoring seed
  • Expecting shuffle() to return a new list
  • Not seeding the generator for reproducibility