In this article, we will look into the principal difference between the Numpy.random.rand() method and the Numpy.random.normal() method in detail.
- About random: For random we are taking .rand()
numpy.random.rand(d0, d1, …, dn) :
creates an array of specified shape and
fills it with random values.
d0, d1, ..., dn : [int, optional] Dimension of the returned array we require, If no argument is given a single Python float is returned.
Array of defined shape, filled with random values.
About normal: For random we are taking .normal()
numpy.random.normal(loc = 0.0, scale = 1.0, size = None) : creates an array of specified shape and fills it with random values which is actually a part of Normal(Gaussian)Distribution. This is Distribution is also known as Bell Curve because of its characteristics shape.
loc : [float or array_like]Mean of the distribution. scale : [float or array_like]Standard Derivation of the distribution. size : [int or int tuples]. Output shape given as (m, n, k) then m*n*k samples are drawn. If size is None(by default), then a single value is returned.
Array of defined shape, filled with random values following normal distribution.
Code 1 : Randomly constructing 1D array
1D Array filled with random values : [ 0.84503968 0.61570994 0.7619945 0.34994803 0.40113761]
Code 2 : Randomly constructing 1D array following Gaussian Distribution
1D Array filled with random values as per gaussian distribution : [-0.99013172 -1.52521808 0.37955684 0.57859283 1.34336863] 3D Array filled with random values as per gaussian distribution : [[[-0.0320374 2.14977849]] [[ 0.3789585 0.17692125]]]
Code3 : Python Program illustrating graphical representation of random vs normal in NumPy
1D Array filled with random values as per gaussian distribution : [ 0.12413355 0.01868444 0.08841698 ..., -0.01523021 -0.14621625 -0.09157214] 1D Array filled with random values : [ 0.72654409 0.26955422 0.19500427 0.37178803 0.10196284]
In code 3, plot 1 clearly shows Gaussian Distribution as it is being created from the values generated through random.normal() method thus following Gaussian Distribution.
plot 2 doesn’t follow any distribution as it is being created from random values generated by random.rand() method.
Code 3 won’t run on online-ID. Please run them on your systems to explore the working.
This article is contributed by Mohit Gupta_OMG 😀. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.
- numpy.random.rand() in Python
- numpy matrix operations | rand() function
- Python - Log Normal Distribution in Statistics
- Python - Power Log-Normal Distribution in Statistics
- Python - Normal Inverse Gaussian Distribution in Statistics
- Python - Normal Distribution in Statistics
- Python - Skew-Normal Distribution in Statistics
- Python - Power Normal Distribution in Statistics
- Python - Truncated Normal Distribution in Statistics
- sympy.stats.Normal() in python
- Mahotas - Labelled Image from the Normal Image
- ML | Normal Equation in Linear Regression
- PyQt5 QSpinBox - Getting normal geometry
- PyQt5 QCalendarWidget - Making Cursor Shape back to normal
- PyQt5 QCalendarWidget - Normal Geometry Property
- Generate five random numbers from the normal distribution using NumPy
- Normal Distribution Plot using Numpy and Matplotlib
- Important differences between Python 2.x and Python 3.x with examples
- Python | Set 4 (Dictionary, Keywords in Python)
- Python | Sort Python Dictionaries by Key or Value