D. Size is larger than array length without replacement.
Solution
Step 1: Analyze parameters and array size
The array has 3 elements, but size=5 is requested without replacement.
Step 2: Understand replacement=False effect
Without replacement, you cannot pick more elements than exist. This causes a ValueError.
Final Answer:
Size is larger than array length without replacement. -> Option D
Quick Check:
Sampling more than available without replace=False causes error [OK]
Hint: Check if sample size > array length when replace=False [OK]
Common Mistakes:
Assuming replacement=True by default
Ignoring array length vs sample size
Thinking data type causes error
5. You want to simulate rolling a weighted 6-sided die 10 times using numpy, where side 6 is twice as likely as others. Which code correctly generates this sample?
hard
A. np.random.choice([1,2,3,4,5,6], size=10, replace=True, p=[1/7,1/7,1/7,1/7,1/7,2/7])
B. np.random.choice([1,2,3,4,5,6], size=10, replace=False, p=[1/6]*6)
C. np.random.choice([1,2,3,4,5,6], size=10, replace=True)
D. np.random.choice([1,2,3,4,5,6], size=10, replace=True, p=[1/6,1/6,1/6,1/6,1/6,1/6])
Solution
Step 1: Understand weighted probabilities
Side 6 should be twice as likely, so probabilities sum to 1 with side 6 having weight 2/7 and others 1/7 each.
Step 2: Check sampling parameters
Sampling 10 times with replacement is needed to allow repeats. np.random.choice([1,2,3,4,5,6], size=10, replace=True, p=[1/7,1/7,1/7,1/7,1/7,2/7]) uses correct probabilities and replace=True.
Step 3: Verify other options
The code with replace=False, p=[1/6]*6 incorrectly prevents repeats needed for multiple rolls. The codes with uniform probabilities (explicit [1/6,1/6,1/6,1/6,1/6,1/6] or none specified) do not weight side 6 twice as likely.
Final Answer:
np.random.choice([1,2,3,4,5,6], size=10, replace=True, p=[1/7,1/7,1/7,1/7,1/7,2/7]) -> Option A
Quick Check:
Weighted probabilities + replace=True for repeated rolls [OK]
Hint: Use p= with weights summing to 1 and replace=True [OK]