Binomial Distribution in Python

Manav Narula Oct 10, 2023
  1. Use the numpy.random.binomial() Function to Create a Binomial Distribution in Python
  2. Use the scipy.stats.binom.pmf() Function to Create a Distribution of Binomial Probabilities in Python
Binomial Distribution in Python

A binomial distribution is an essential concept of probability and statistics. It represents the actual outcomes of a given number of independent experiments when the probability of success and failure is known. It is possible only when exactly 2 outcomes are possible for a separate event, like a coin toss. Its mathematical formula is shown below.

Binomial Distribution Formula

This tutorial will demonstrate how to create a binomial distribution in Python.

Use the numpy.random.binomial() Function to Create a Binomial Distribution in Python

The numpy module can generate a series of random values in a numpy array. We can use the numpy.random.binomial() function to return a sample of this distribution.

We can specify the number of trials (n), probability of success (p), and size of the final output (size) as parameters in the function.

For example,

import numpy as np

a = np.random.binomial(n=5, p=0.7, size=20)
print(a)

Output:

[5 4 2 3 2 4 4 3 3 3 4 2 3 4 3 4 5 5 2 2]

In the above example, each value represents the number of times an event occurs during 5 trials when the probability of success was 0.7. This was repeated for a sample of size 20.

We can also plot this using the seaborn.distplot() function.

For example,

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

a = np.random.binomial(n=5, p=0.7, size=20)
sns.distplot(a, hist=True, kde=False)
plt.show()

Output:

Use the numpy.random.binomial() Function to Create a Binomial Distribution in Python

Use the scipy.stats.binom.pmf() Function to Create a Distribution of Binomial Probabilities in Python

The scipy.stats.binom.pmf() function returns the binomial probability for some given values. We can use it to create a distribution of binomial probabilities.

It is different from the previous distribution. We will loop over the number of successes desired to create this distribution.

For example,

from scipy.stats import binom

n = 5
p = 0.7
s = list(range(n + 1))
a = [binom.pmf(r, n, p) for r in s]
print(a)
sns.distplot(a, hist=True, kde=False)
plt.show()

Output:

scipy.stats.binom.pmf

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn