Bird
Raised Fist0
SciPydata~10 mins

Random variable generation in SciPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to generate 5 random numbers from a normal distribution with mean 0 and standard deviation 1.

SciPy
from scipy.stats import norm
samples = norm.[1](loc=0, scale=1, size=5)
print(samples)
Drag options to blanks, or click blank then click option'
Apdf
Bcdf
Crvs
Dppf
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'pdf' or 'cdf' instead of 'rvs' which do not generate samples.
Confusing 'ppf' with sample generation.
2fill in blank
medium

Complete the code to generate 10 random values from a uniform distribution between 0 and 1.

SciPy
from scipy.stats import uniform
samples = uniform.[1](loc=0, scale=1, size=10)
print(samples)
Drag options to blanks, or click blank then click option'
Arvs
Bcdf
Cpdf
Dsf
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'cdf' or 'pdf' which calculate probabilities, not samples.
Using 'sf' which is survival function, not sample generation.
3fill in blank
hard

Fix the error in the code to generate 7 random values from an exponential distribution with rate 2 (lambda=2).

SciPy
from scipy.stats import expon
samples = expon.[1](scale=0.5, size=7)
print(samples)
Drag options to blanks, or click blank then click option'
Arvs
Bcdf
Cpdf
Dppf
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'cdf' or 'pdf' which do not generate samples.
Using 'ppf' which calculates quantiles, not samples.
4fill in blank
hard

Fill both blanks to create a dictionary of word lengths for words longer than 4 characters.

SciPy
words = ['apple', 'bat', 'carrot', 'dog', 'elephant']
lengths = {word: [1] for word in words if len(word) [2] 4}
print(lengths)
Drag options to blanks, or click blank then click option'
Alen(word)
Bword
C>
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself as the value instead of its length.
Using '<=' instead of '>' in the condition.
5fill in blank
hard

Fill all three blanks to create a dictionary of uppercase words and their lengths for words shorter than 6 characters.

SciPy
words = ['apple', 'bat', 'carrot', 'dog', 'elephant']
result = { [1]: [2] for word in words if len(word) [3] 6 }
print(result)
Drag options to blanks, or click blank then click option'
Aword.upper()
Blen(word)
C<
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the original word as key instead of uppercase.
Using '>' instead of '<' in the condition.
Using the word as value instead of its length.

Practice

(1/5)
1. What does the rvs method in scipy.stats do?
easy
A. Calculates the mean of a dataset
B. Sorts an array in ascending order
C. Plots a histogram of data
D. Generates random samples from a specified probability distribution

Solution

  1. Step 1: Understand the purpose of rvs

    The rvs method is used to create random values that follow a given distribution.
  2. Step 2: Compare with other options

    Calculating mean, plotting, or sorting are different functions and not related to rvs.
  3. Final Answer:

    Generates random samples from a specified probability distribution -> Option D
  4. Quick Check:

    rvs = random samples [OK]
Hint: Remember: rvs means random variable samples [OK]
Common Mistakes:
  • Confusing rvs with statistical calculations like mean
  • Thinking rvs plots data
  • Assuming rvs sorts data
2. Which of the following is the correct way to generate 5 random samples from a normal distribution with mean 0 and standard deviation 1 using scipy.stats?
easy
A. norm.generate(5, mean=0, sd=1)
B. norm.rvs(loc=0, scale=1, size=5)
C. stats.norm.sample(0, 1, 5)
D. norm.random(mean=0, std=1, count=5)

Solution

  1. Step 1: Recall the correct method and parameters

    In scipy.stats.norm, rvs generates samples. Parameters are loc for mean, scale for std deviation, and size for number of samples.
  2. Step 2: Check each option

    Only norm.rvs(loc=0, scale=1, size=5) uses correct method rvs and correct parameter names.
  3. Final Answer:

    norm.rvs(loc=0, scale=1, size=5) -> Option B
  4. Quick Check:

    Correct method and parameters = norm.rvs(loc=0, scale=1, size=5) [OK]
Hint: Use rvs with loc, scale, and size for sampling [OK]
Common Mistakes:
  • Using wrong method names like random or sample
  • Mixing parameter names like mean instead of loc
  • Incorrect order or missing size parameter
3. What will be the output type of the following code?
from scipy.stats import uniform
samples = uniform.rvs(loc=10, scale=5, size=3)
print(type(samples))
medium
A. <class 'numpy.ndarray'>
B. <class 'list'>
C. <class 'tuple'>
D. <class 'int'>

Solution

  1. Step 1: Understand output of rvs with size>1

    When size is more than 1, rvs returns a NumPy array of samples.
  2. Step 2: Check the printed type

    Printing type(samples) will show <class 'numpy.ndarray'>.
  3. Final Answer:

    <class 'numpy.ndarray'> -> Option A
  4. Quick Check:

    rvs with size=3 returns ndarray [OK]
Hint: rvs with size>1 returns numpy array [OK]
Common Mistakes:
  • Assuming output is a list instead of ndarray
  • Thinking output is a single number
  • Confusing tuple with array
4. Identify the error in the following code snippet:
from scipy.stats import binom
samples = binom.rvs(n=10, p=0.5, size='5')
medium
A. Parameter 'size' should be an integer, not a string
B. Parameter 'p' must be greater than 1
C. Parameter 'n' should be a float, not int
D. Missing import for numpy

Solution

  1. Step 1: Check parameter types for rvs

    The size parameter expects an integer or tuple of integers, not a string.
  2. Step 2: Analyze given parameters

    Here, size='5' is a string, which will cause a TypeError.
  3. Final Answer:

    Parameter 'size' should be an integer, not a string -> Option A
  4. Quick Check:

    size must be int, not string [OK]
Hint: Size must be int or tuple, never string [OK]
Common Mistakes:
  • Passing size as string instead of int
  • Thinking p must be >1 (it's a probability 0-1)
  • Assuming n must be float
5. You want to simulate the number of successes in 20 trials where each trial has a 30% chance of success. Which scipy.stats function call correctly generates 10 such random samples?
hard
A. binomial.rvs(20, 0.3, 10)
B. binom.rvs(trials=20, prob=0.3, samples=10)
C. binom.rvs(n=20, p=0.3, size=10)
D. binom.sample(n=20, p=0.3, size=10)

Solution

  1. Step 1: Identify correct distribution and parameters

    The binomial distribution models number of successes in fixed trials. Parameters are n for trials, p for success probability, and size for sample count.
  2. Step 2: Check each option's correctness

    Only binom.rvs(n=20, p=0.3, size=10) uses correct function binom.rvs and correct parameter names.
  3. Final Answer:

    binom.rvs(n=20, p=0.3, size=10) -> Option C
  4. Quick Check:

    binom.rvs with n, p, size correct = binom.rvs(n=20, p=0.3, size=10) [OK]
Hint: Use binom.rvs with n, p, size for binomial samples [OK]
Common Mistakes:
  • Using wrong parameter names like trials or prob
  • Using non-existent functions like binomial.rvs
  • Confusing sample with rvs method
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