The binomial distribution is one of the most commonly used distributions in statistics. It describes the probability of obtaining *k* successes in *n* binomial experiments.

If a random variable *X* follows a binomial distribution, then the probability that *X* = *k* successes can be found by the following formula:

**P(X=k) = _{n}C_{k} * p^{k} * (1-p)^{n-k}**

where:

**n:**number of trials**k:**number of successes**p:**probability of success on a given trialthe number of ways to obtain_{n}C_{k}:*k*successes in*n*trials

This tutorial explains how to use the binomial distribution in Python.

**How to Generate a Binomial Distribution**

You can generate an array of values that follow a binomial distribution by using the random.binomial function from the numpy library:

from numpy import random #generate an array of 10 values that follow a binomial distribution random.binomial(n=10, p=.25, size=10) array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

Each number in the resulting array represents the number of “successes” experienced during **10** trials where the probability of success in a given trial was **.25**.

**How to Calculate Probabilities Using a Binomial Distribution**

You can also answer questions about binomial probabilities by using the binom function from the scipy library.

**Question 1:** Nathan makes 60% of his free-throw attempts. If he shoots 12 free throws, what is the probability that he makes exactly 10?

from scipy.stats import binom #calculate binomial probability binom.pmf(k=10, n=12, p=0.6) 0.0639

The probability that Nathan makes exactly 10 free throws is **0.0639**.

**Question 2:** Marty flips a fair coin 5 times. What is the probability that the coin lands on heads 2 times or fewer?

from scipy.stats import binom #calculate binomial probability binom.cdf(k=2, n=5, p=0.5) 0.5

The probability that the coin lands on heads 2 times or fewer is **0.5**.

**Question 3:** It is known that 70% of individuals support a certain law. If 10 individuals are randomly selected, what is the probability that between 4 and 6 of them support the law?

from scipy.stats import binom #calculate binomial probability binom.cdf(k=6, n=10, p=0.7) - binom.cdf(k=3, n=10, p=0.7) 0.3398

The probability that between 4 and 6 of the randomly selected individuals support the law is **0.3398**.

**How to Visualize a Binomial Distribution**

You can visualize a binomial distribution in Python by using the **seaborn** and **matplotlib** libraries:

from numpy import random import matplotlib.pyplot as plt import seaborn as sns x = random.binomial(n=10, p=0.5, size=1000) sns.distplot(x, hist=True, kde=False) plt.show()

The x-axis describes the number of successes during 10 trials and the y-axis displays the number of times each number of successes occurred during 1,000 experiments.