The Python random.normalvariate() method in Python generates random numbers that follows the Normal Distribution, also called as Gaussian Distribution. It is a family of continuous probability distributions, depends on the values of two parameters mu and sigma. Where, mu is the mean and sigma is the standard deviation of the normal distribution.
This distribution is often used in statistics, data analysis, and various fields of science, including natural and social sciences.
This method is slightly slower than the random.gauss() method for generating random numbers from a Normal (Gaussian) distribution.
SyntaxFollowing is the syntax of Python normalvariate() method −
random.normalvariate(mu, sigma)Parameters
This method accepts two parameters −
mu: This is the mean of the normal distribution. It defines the center of the distribution around which the data points are distributed.
sigma: This is the standard deviation of the normal distribution. It determines the spread of the distribution; a larger standard deviation results in a wider distribution.
This method returns a random number that follows the normal distribution.
Example 1Let's see a basic example of using the Python random.normalvariate() method for generating a random number from a normal distribution with a mean of 0 and a standard deviation of 1.
import random # mean mu = 0 # standard deviation sigma = 1 # Generate a normal-distributed random number random_number = random.normalvariate(mu, sigma) # Print the output print("Generated random number from normal-distribution:",random_number)
Following is the output −
Generated random number from normal-distribution: -0.7769202103807216
Note: The Output generated will vary each time you run the program due to its random nature.
Example 2This example generates a list of 10 random numbers that follows the normal distribution using the random.normalvariate() method.
import random # mean mu = -2 # standard deviation sigma = 0.5 result = [] # Generate a list of random numbers from the normal distribution for i in range(10): result.append(random.normalvariate(mu, sigma)) print("List of random numbers from normal distribution:", result)
While executing the above code you will get the similar output like below −
List of random numbers from normal distribution: [-2.778171960521405, -2.2533800337312067, -1.9066268514693987, -1.084536370988285, -1.9904834774844322, -2.0760115964122665, -1.834173950583494, -2.2002024554415516, -2.5518948340343868, -1.3772372391051193]Example 3
Here is another example that uses the random.normalvariate() method, and demonstrates how changing the mean and standard deviation affects the shape of the normal distribution.
import random import matplotlib.pyplot as plt # Define a function to generate and plot data for a given mu and sigma def plot_normal(mu, sigma, label, color): # Generate normal-distributed data data = [random.normalvariate(mu, sigma) for _ in range(10000)] # Plot histogram of the generated data plt.hist(data, bins=100, density=True, alpha=0.6, color=color, label=f'(mu={mu}, sigma={sigma})') fig = plt.figure(figsize=(7, 4)) # Plotting for each set of parameters plot_normal(0, 0.2, '0, 0.2', 'blue') plot_normal(0, 1, '0, 1', 'red') plot_normal(0, 2, '0, 2', 'yellow') plot_normal(-2, 0.5, '-2, 0.5', 'green') # Adding labels and title plt.title('Normal Distributions') plt.legend() # Show plot plt.show()
The output of the above code is as follows −
python_modules.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4