Python Probability Distributions – Normal, Binomial, Poisson, Bernoulli
Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python
1. Python Probability Distributions – Objective
After studying Python Descriptive Statistics, now we are going to explore 4 Major Python Probability Distributions: Normal, Binomial, Poisson, and Bernoulli Distributions in Python. Moreover, we will learn how to implement these Python probability distributions with Python Programming.
2. What is Python Probability Distribution?
A probability distribution is a function under probability theory and statistics- one that gives us how probable different outcomes are in an experiment. It describes events in terms of their probabilities; this is out of all possible outcomes. Let’s take the probability distribution of a fair coin toss. Here, heads take a value of X=0.5 and tails gets X=0.5 too.
Two classes of such a distribution are discrete and continuous. The former represented by a probability mass function and the latter by a probability density function.
Do you know about Python Namedtuple
3. How to Implement Python Probability Distributions?
Let’s implement these types of Python Probability Distributions, let’s see them:
a. Normal Distribution in PythonÂ
Python normal distribution is a function that distributes random variables in a graph that is shaped as a symmetrical bell. It does so by arranging the probability distribution for each value. Let’s use Python numpy for this.
>>> import scipy.stats >>> import numpy as np >>> import matplotlib.pyplot as plt >>> np.random.seed(1234) >>> samples=np.random.lognormal(mean=1.,sigma=.4,size=10000) >>> shape,loc,scale=scipy.stats.lognorm.fit(samples,floc=0) >>> num_bins=50 >>> clr="#EFEFEF" >>> counts,edges,patches=plt.hist(samples,bins=num_bins,color=clr) >>> centers=0.5*(edges[:-1]+edges[1:]) >>> cdf=scipy.stats.lognorm.cdf(edges,shape,loc=loc,scale=scale) >>> prob=np.diff(cdf) >>> plt.plot(centers,samples.size*prob,'k-',linewidth=2)
[<matplotlib.lines.Line2D object at 0x0359E890>]
>>> plt.show()
b. Binomial Distribution in Python
Python binomial distribution tells us the probability of how often there will be a success in n independent experiments. Such experiments are yes-no questions. One example may be tossing a coin.
Let’s explore SciPy Tutorial – Linear Algebra, Benefits, Special Functions
>>> import seaborn >>> from scipy.stats import binom >>> data=binom.rvs(n=17,p=0.7,loc=0,size=1010) >>> ax=seaborn.distplot(data, Â Â Â Â Â Â Â Â Â kde=True, Â Â Â Â Â Â Â Â Â color='pink', Â Â Â Â Â Â Â Â Â hist_kws={"linewidth": 22,'alpha':0.77}) >>> ax.set(xlabel='Binomial',ylabel='Frequency')
[Text(0,0.5,’Frequency’), Text(0.5,0,’Binomial’)]
>>> plt.show()
c. Poisson Distribution in Python
Python Poisson distribution tells us about how probable it is that a certain number of events happen in a fixed interval of time or space. This assumes that these events happen at a constant rate and also independent of the last event.
>>> import numpy as np >>> s=np.random.poisson(5, 10000) >>> import matplotlib.pyplot as plt >>> plt.hist(s,16,normed=True,color='Green')
(array([5.86666667e-03, 3.55200000e-02, 8.86400000e-02, 1.48906667e-01,
1.91573333e-01, 1.81440000e-01, 1.56160000e-01, 1.16586667e-01,
6.65600000e-02, 3.90400000e-02, 2.06933333e-02, 9.06666667e-03,
3.84000000e-03, 2.13333333e-03, 5.33333333e-04, 1.06666667e-04]), array([ 0. , 0.9375, 1.875 , 2.8125, 3.75 , 4.6875, 5.625 ,
6.5625, 7.5 , 8.4375, 9.375 , 10.3125, 11.25 , 12.1875,
13.125 , 14.0625, 15. ]), <a list of 16 Patch objects>)
Read about What is Python Interpreter – Environment, Invoking & Working
>>> plt.show()
d. Bernoulli Distribution in Python
Python Bernoulli Distribution is a case of binomial distribution where we conduct a single experiment. This is a discrete probability distribution with probability p for value 1 and probability q=1-p for value 0. p can be for success, yes, true, or one. Similarly, q=1-p can be for failure, no, false, or zero.
>>> s=np.random.binomial(10,0.5,1000) >>> plt.hist(s,16,normed=True,color='Brown')
(array([0.00177778, 0.02311111, 0. , 0.08711111, 0. ,
0.18666667, 0. , 0.33777778, 0.45155556, 0. ,
0.37688889, 0. , 0.224 , 0. , 0.07466667,
0.01422222]), array([0. , 0.5625, 1.125 , 1.6875, 2.25 , 2.8125, 3.375 , 3.9375,
4.5 , 5.0625, 5.625 , 6.1875, 6.75 , 7.3125, 7.875 , 8.4375,
9. ]), <a list of 16 Patch objects>)
Do you know about Python Django Tutorial For Beginners
>>> plt.show()
So, this was all about Python Probability Distribution. Hope you like our explanation.
4. Conclusion
Hence, we studied Python Probability Distribution and its 4 types with an example. In addition, we learned how to implement these Python probability distributions. Furthermore, if you have any doubt, feel free to ask in the comment section.
Related Topic-Â How to Work with Relational DatabaseÂ
For reference
Did you know we work 24x7 to provide you best tutorials
Please encourage us - write a review on Google