Bird
Raised Fist0
NumPydata~20 mins

Random choice from array in NumPy - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Random Choice Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of numpy random choice with replacement
What is the output of this code snippet?
import numpy as np
np.random.seed(0)
arr = np.array([10, 20, 30, 40])
result = np.random.choice(arr, size=3, replace=True)
print(result)
NumPy
import numpy as np
np.random.seed(0)
arr = np.array([10, 20, 30, 40])
result = np.random.choice(arr, size=3, replace=True)
print(result)
A[30 30 30]
B[20 20 40]
C[40 10 10]
D[10 40 20]
Attempts:
2 left
💡 Hint
Remember that numpy.random.choice with replace=True can pick the same element multiple times.
❓ data_output
intermediate
2:00remaining
Number of unique elements in random choice without replacement
Given this code, how many unique elements will the result contain?
import numpy as np
np.random.seed(1)
arr = np.array([5, 10, 15, 20, 25])
result = np.random.choice(arr, size=4, replace=False)
print(len(np.unique(result)))
NumPy
import numpy as np
np.random.seed(1)
arr = np.array([5, 10, 15, 20, 25])
result = np.random.choice(arr, size=4, replace=False)
print(len(np.unique(result)))
A3
B4
C5
D1
Attempts:
2 left
💡 Hint
When replace=False, elements cannot repeat in the sample.
🔧 Debug
advanced
2:00remaining
Identify the error in numpy random choice usage
What error does this code raise?
import numpy as np
arr = np.array([1, 2, 3])
result = np.random.choice(arr, size=5, replace=False)
print(result)
NumPy
import numpy as np
arr = np.array([1, 2, 3])
result = np.random.choice(arr, size=5, replace=False)
print(result)
AValueError: Cannot take a larger sample than population when 'replace=False'
BTypeError: 'replace' argument must be boolean
CIndexError: index out of bounds
DNo error, prints 5 elements
Attempts:
2 left
💡 Hint
Check if the sample size is larger than the array length when replace=False.
🚀 Application
advanced
2:00remaining
Weighted random choice output
What is the output of this code?
import numpy as np
np.random.seed(2)
arr = np.array(['red', 'green', 'blue'])
weights = [0.1, 0.7, 0.2]
result = np.random.choice(arr, size=5, p=weights)
print(result)
NumPy
import numpy as np
np.random.seed(2)
arr = np.array(['red', 'green', 'blue'])
weights = [0.1, 0.7, 0.2]
result = np.random.choice(arr, size=5, p=weights)
print(result)
A['green' 'blue' 'red' 'green' 'blue']
B['red' 'red' 'green' 'blue' 'green']
C['blue' 'blue' 'green' 'green' 'red']
D['green' 'green' 'green' 'blue' 'green']
Attempts:
2 left
💡 Hint
Weights affect the probability of each element being chosen.
🧠 Conceptual
expert
2:00remaining
Effect of random seed on numpy random choice
Which statement is true about setting a random seed before using numpy.random.choice?
ASetting the seed ensures the random choices are the same every time the code runs.
BSetting the seed makes the choices completely unpredictable.
CThe seed only affects random integers, not random choice.
DRandom seed must be set after calling numpy.random.choice to affect output.
Attempts:
2 left
💡 Hint
Think about reproducibility in random operations.

Practice

(1/5)
1.

What does the numpy.random.choice function do?

easy
A. It picks one or more random elements from an array.
B. It sorts the array in ascending order.
C. It calculates the mean of the array elements.
D. It removes duplicate elements from the array.

Solution

  1. Step 1: Understand the function purpose

    numpy.random.choice is used to select random elements from an array.
  2. Step 2: Compare with other options

    Sorting, calculating mean, or removing duplicates are different functions and unrelated to random choice.
  3. Final Answer:

    It picks one or more random elements from an array. -> Option A
  4. Quick Check:

    Random choice = pick random elements [OK]
Hint: Random choice picks elements randomly from an array [OK]
Common Mistakes:
  • Confusing random choice with sorting
  • Thinking it calculates statistics like mean
  • Assuming it removes duplicates
2.

Which of the following is the correct syntax to pick 3 random elements from a numpy array arr with replacement?

import numpy as np
arr = np.array([10, 20, 30, 40, 50])
easy
A. np.random.choice(arr, size=3, replace=False)
B. np.random.choice(arr, 3, replace=False)
C. np.random.choice(arr, size=3, replace=True)
D. np.random.choice(arr, 3, replace=True, axis=1)

Solution

  1. Step 1: Check correct parameter names

    The function uses size to specify number of elements and replace to allow repeats.
  2. Step 2: Validate each option

    np.random.choice(arr, size=3, replace=True) uses correct parameters: size=3 and replace=True. Others have wrong parameter names or extra invalid ones.
  3. Final Answer:

    np.random.choice(arr, size=3, replace=True) -> Option C
  4. Quick Check:

    Correct syntax = size=3, replace=True [OK]
Hint: Use size= and replace= parameters correctly [OK]
Common Mistakes:
  • Using positional argument without size=
  • Setting replace=False when repeats are needed
  • Adding invalid parameters like axis
3.

What is the output of this code?

import numpy as np
np.random.seed(0)
arr = np.array([1, 2, 3, 4, 5])
result = np.random.choice(arr, size=4, replace=False)
print(result)
medium
A. [5 1 4 3]
B. [4 5 1 3]
C. [1 2 3 4]
D. [2 5 1 4]

Solution

  1. Step 1: Understand seed and choice without replacement

    Setting seed ensures reproducible random results. Choosing 4 unique elements without replacement picks 4 different values from arr.
  2. Step 2: Run code or recall output

    With seed 0, the output is [2 5 1 4].
  3. Final Answer:

    [2 5 1 4] -> Option D
  4. Quick Check:

    Seed 0 + replace=False = [2 5 1 4] [OK]
Hint: Use np.random.seed for consistent random output [OK]
Common Mistakes:
  • Ignoring seed and expecting different output
  • Confusing replace=True and replace=False results
  • Assuming output is sorted
4.

Identify the error in this code snippet:

import numpy as np
arr = np.array([1, 2, 3])
result = np.random.choice(arr, size=5, replace=False)
print(result)
medium
A. Size is larger than array length without replacement, causing an error.
B. Array is not defined properly.
C. Missing import statement for numpy.
D. replace parameter should be True to avoid error.

Solution

  1. Step 1: Check size vs array length with replace=False

    Choosing 5 elements without replacement from an array of length 3 is invalid and raises an error.
  2. Step 2: Confirm other parts are correct

    Array is defined, numpy is imported, and replace parameter is valid. The main issue is size too large without replacement.
  3. Final Answer:

    Size is larger than array length without replacement, causing an error. -> Option A
  4. Quick Check:

    Size > array length + replace=False = error [OK]
Hint: Size must not exceed array length if replace=False [OK]
Common Mistakes:
  • Ignoring size vs array length mismatch
  • Assuming replace=True by default
  • Not importing numpy before use
5.

You have a numpy array data = np.array([10, 20, 30, 40, 50]). You want to randomly select 3 unique elements but ensure the number 20 is always included in the result. Which approach is correct?

hard
A. Pick 3 elements with replacement and filter for 20 after.
B. Remove 20 from array, pick 2 without replacement, then add 20 back.
C. Use np.random.choice(data, size=3, replace=False) directly.
D. Pick 3 elements with replacement and add 20 manually.

Solution

  1. Step 1: Understand the requirement

    We want 3 unique elements including 20 always.
  2. Step 2: Choose method to guarantee 20

    Remove 20, pick 2 unique elements from remaining, then add 20 to result ensures 20 is included and no duplicates.
  3. Step 3: Evaluate other options

    Direct random choice may exclude 20. Picking with replacement can cause duplicates or exclude 20. Adding 20 manually after picking with replacement may cause duplicates.
  4. Final Answer:

    Remove 20 from array, pick 2 without replacement, then add 20 back. -> Option B
  5. Quick Check:

    Guarantee element by picking rest then adding it [OK]
Hint: Pick others without 20, then add 20 to ensure inclusion [OK]
Common Mistakes:
  • Assuming random choice always includes 20
  • Using replacement causing duplicates
  • Adding 20 after picking with replacement causing repeats