# How to Generate a Normal Distribution in Python (With Examples)

You can quickly generate a normal distribution in Python by using the numpy.random.normal() function, which uses the following syntax:

`numpy.random.normal(loc=0.0, scale=1.0, size=None)`

where:

• loc: Mean of the distribution. Default is 0.
• scale: Standard deviation of the distribution. Default is 1.
• size: Sample size.

This tutorial shows an example of how to use this function to generate a normal distribution in Python.

### Example: Generate a Normal Distribution in Python

The following code shows how to generate a normal distribution in Python:

```from numpy.random import seed
from numpy.random import normal

#make this example reproducible
seed(1)

#generate sample of 200 values that follow a normal distribution
data = normal(loc=0, scale=1, size=200)

#view first six values
data[0:5]

array([ 1.62434536, -0.61175641, -0.52817175, -1.07296862,  0.86540763])
```

We can quickly find the mean and standard deviation of this distribution:

```import numpy as np

#find mean of sample
np.mean(data)

0.1066888148479486

#find standard deviation of sample
np.std(data, ddof=1)

0.9123296653173484
```

We can also create a quick histogram to visualize the distribution of data values:

```import matplotlib.pyplot as plt
count, bins, ignored = plt.hist(data, 30)
plt.show()
``` We can even perform a Shapiro-Wilk test to see if the dataset comes from a normal population:

```from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9958659410, pvalue=0.8669294714)
```

The p-value of the test turns out to be 0.8669. Since this value is not less than .05, we can assume the sample data comes from a population that is normally distributed.

This result shouldn’t be surprising since we generated the data using the numpy.random.normal() function, which generates a random sample of data that comes from a normal distribution.