The binomial distribution helps us find the chance of a certain number of successes in a fixed number of tries, when each try has the same chance of success.
Counting how many heads appear when flipping a coin 10 times.
Finding the chance of getting exactly 3 defective items in a batch of 20.
Estimating how many customers will buy a product out of 100 visitors, if each has a 5% chance to buy.
Checking the probability of passing a multiple-choice quiz by guessing answers.
Syntax
SciPy
from scipy.stats import binom
binom.pmf(k, n, p)
binom.cdf(k, n, p)
binom.pmf(k, n, p) gives the probability of exactly k successes in n tries.
binom.cdf(k, n, p) gives the probability of up to k successes (0 to k).
Examples
This finds the chance of getting exactly 3 heads when flipping a fair coin 5 times.
SciPy
from scipy.stats import binom
# Probability of exactly 3 heads in 5 coin flips
prob_3_heads = binom.pmf(3, 5, 0.5)
print(prob_3_heads)
This finds the chance of getting 0, 1, 2, or 3 defective items if each has a 10% defect chance.
SciPy
from scipy.stats import binom
# Probability of 3 or fewer defective items in 10 tries
prob_up_to_3 = binom.cdf(3, 10, 0.1)
print(prob_up_to_3)
Sample Program
This program calculates the chance of getting exactly 4 successes and also 4 or fewer successes in 10 tries, where each try has a 30% chance of success.
SciPy
from scipy.stats import binom
# Number of trials
n = 10# Probability of success on each trial
p = 0.3# Calculate probability of exactly 4 successes
k = 4
prob_exact_4 = binom.pmf(k, n, p)
# Calculate probability of 4 or fewer successes
prob_up_to_4 = binom.cdf(k, n, p)
print(f"Probability of exactly {k} successes: {prob_exact_4:.4f}")
print(f"Probability of {k} or fewer successes: {prob_up_to_4:.4f}")
OutputSuccess
Important Notes
The binomial distribution assumes each trial is independent and has the same chance of success.
Use pmf for exact counts and cdf for cumulative counts.
Summary
Binomial distribution models the number of successes in fixed tries with same success chance.
Use binom.pmf for exact success counts.
Use binom.cdf for cumulative success counts up to a number.
Practice
(1/5)
1. What does the binomial distribution model in data science?
easy
A. The relationship between two continuous variables
B. The number of successes in a fixed number of independent trials with the same success probability
C. The average value of a continuous variable
D. The total sum of all outcomes in a dataset
Solution
Step 1: Understand the binomial distribution concept
The binomial distribution counts how many times an event happens in a fixed number of tries, where each try has the same chance of success.
Step 2: Match the description to the options
The number of successes in a fixed number of independent trials with the same success probability correctly describes this as the number of successes in fixed independent trials with the same success chance.
Final Answer:
The number of successes in a fixed number of independent trials with the same success probability -> Option B
Quick Check:
Binomial distribution = count of successes [OK]
Hint: Binomial counts successes in fixed tries with same chance [OK]
Common Mistakes:
Confusing binomial with normal distribution
Thinking it models averages or sums
Mixing up independent trials with dependent events
2. Which of the following is the correct way to import the binomial distribution function from scipy.stats?
easy
A. import binom from scipy.stats
B. import scipy.binomial as binom
C. from scipy.stats import binom
D. from scipy import binomial
Solution
Step 1: Recall the correct import syntax for scipy.stats binomial
The binomial distribution is accessed via scipy.stats as 'binom', so the correct import is 'from scipy.stats import binom'.
Step 2: Check each option's syntax
from scipy.stats import binom matches the correct Python import syntax. Options A, B, and C are invalid Python import statements or incorrect module names.
Final Answer:
from scipy.stats import binom -> Option C
Quick Check:
Correct import = from scipy.stats import binom [OK]
Hint: Use 'from scipy.stats import binom' to import binomial [OK]
Common Mistakes:
Using wrong module names like scipy.binomial
Incorrect import syntax like 'import binom from ...'
Forgetting to import from scipy.stats
3. What is the output of this code snippet?
from scipy.stats import binom
n, p = 5, 0.4
prob = binom.pmf(3, n, p)
print(round(prob, 3))
medium
A. 0.230
B. 0.345
C. 0.200
D. 0.410
Solution
Step 1: Understand binom.pmf parameters
binom.pmf(k, n, p) gives the probability of exactly k successes in n trials with success chance p. Here, k=3, n=5, p=0.4.
Step 2: Calculate binomial probability for k=3
Using the binomial formula or scipy, the probability is about 0.2304, rounded to 0.230.
Final Answer:
0.230 -> Option A
Quick Check:
binom.pmf(3,5,0.4) ≈ 0.230 [OK]
Hint: Use binom.pmf(k,n,p) for exact success probability [OK]
Common Mistakes:
Confusing pmf with cdf
Mixing up parameters order
Rounding incorrectly
4. Identify the error in this code snippet:
from scipy.stats import binom
n, p = 10, 0.3
prob = binom.pmf(n, 10, p)
print(prob)
medium
A. The first argument to binom.pmf should be the number of successes, not total trials
B. The probability p should be an integer
C. The import statement is incorrect
D. The print statement is missing parentheses
Solution
Step 1: Check binom.pmf argument order
binom.pmf(k, n, p) expects k = number of successes, n = number of trials, p = success probability.
Step 2: Analyze the code arguments
Here, the first argument is n=10, which is total trials, not the number of successes. This is incorrect usage.
Final Answer:
The first argument to binom.pmf should be the number of successes, not total trials -> Option A
Quick Check:
binom.pmf(k,n,p) needs k successes first [OK]
Hint: First arg to pmf is successes, not total trials [OK]
Common Mistakes:
Swapping k and n arguments
Using integer for probability p
Incorrect import or print syntax
5. You want to find the probability of getting at most 2 successes in 8 trials with success chance 0.5 using scipy. Which code snippet correctly calculates this cumulative probability?
hard
A. binom.cdf(8, 2, 0.5)
B. binom.pmf(2, 8, 0.5)
C. binom.sf(2, 8, 0.5)
D. binom.cdf(2, 8, 0.5)
Solution
Step 1: Understand cumulative probability for 'at most' successes
To find probability of at most 2 successes, use cumulative distribution function (cdf) up to 2.
Step 2: Match correct function and parameters
binom.cdf(2, 8, 0.5) correctly computes P(X ≤ 2) for n=8, p=0.5. Other options either use pmf (exact), sf (survival function), or wrong parameter order.
Final Answer:
binom.cdf(2, 8, 0.5) -> Option D
Quick Check:
Use binom.cdf(k,n,p) for P(X ≤ k) [OK]
Hint: Use binom.cdf for cumulative probability up to k [OK]
Common Mistakes:
Using pmf instead of cdf for cumulative
Swapping n and k parameters
Using survival function sf for 'at most' instead of 'more than'
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.