How to Use NumPy random.normal() In Python? (2024)

NumPy random.normal() function in Python is used to create an array of specified shape and fills it with random values from a normal (Gaussian) distribution. This distribution is also known as Bell Curve because of its characteristic shape.

This function takes an int or tuple of int, to specify the size of an array, similar to other NumPy functions like the numpy.ones() and numpy.zeros(). In this article, I will explain numpy.random.normal() function syntax and using its parameters how to get random values of the single and multi-dimensional arrays with examples.

1. Quick Examples of NumPy random.normal() Function

If you are in a hurry, below are some quick examples of how to use NumPy random.normal() in Python.

# Quick examples of numpy random.normal() function# Example 1: Get the random samples of normal distribution arr = np.random.normal(size = 5)# Example 2: Get the random samples of normal distribution arr = np.random.normal(size = (3,2))# Example 3: Get the mean value of random valuesarr = np.random.normal(loc = 2)# Example 4: Get the mean of random valuesdesired_mean = 2arr = np.random.normal(loc=desired_mean, size=(3, 4))# Example 5: Get the standard deviation of random valuesarr = np.random.normal(scale = 4.0)# Example 6: Generate random samples # Along the specified standard deviationdesired_std_dev = 2arr = np.random.normal(scale=desired_std_dev, size=(3, 4))# Example 7: Get the random values arr = np.random.normal( loc = 2, scale = 4.0, size = 5)

2. Syntax of NumPy random.normal()

Following is the Syntax of np.random.normal().

# Syntax of NumPy random.normal()numpy.random.normal(loc = 0.0, scale = 1.0, size = None) 

2.1 Parameters of random.normal()

Following are the parameters of normal() function.

  • loc : It is optional. Like an array of a float value. It specifies the mean of the distribution. By default, it is set to 0.0.
  • scale : It is optional. Like an array of a float value. It specifies the standard deviation. By default, it is set to 1.0. It must not be a negative value.
  • size : It is optional and is an integer or a tuple of integers. It specifies the shape of the returned array. If the size is None. By default, it is set to value 1.

2.2 Return Value of random.normal()

It returns an array of random values from a normal distribution along with the specified shape.

3. Usage of NumPy random.normal()

random.normal() function is the built-in function in the NumPy module package of Python. This function generates random samples from a normal distribution/Gaussian distribution. When you pass the int or tuple of int as a parameter into this function, it will return the array of specified size or multi-dimensional array of random samples of normal distribution.

You can use numpy.random.normal() to generate an array of random samples from a normal distribution. For instance, first, import the NumPy library and alias it as np for convenience. Generate an array arr with 5 random samples from a standard normal distribution (mean=0, standard deviation=1). You can customize the size parameter to control the length of the array.

# Import numpy moduleimport numpy as np# Get the random samples of normal distribution arr = np.random.normal(size = 5)print("Random samples of normal distribution:\n",arr)

Yields below output.

You can also use the numpy.random.normal() to generate random samples from a normal distribution and store them in a 3×2 array. For example, generate a 3×2 array (size=(3,2)) of random samples from a standard normal distribution (mean=0, standard deviation=1).

# Get the random samples of normal distribution arr = np.random.normal(size = (3,2))print("Random samples of normal distribution:\n",arr)# Output:# Random samples of normal distribution:# [[-0.07927722 -0.26185901]# [ 1.17315204 -0.04157541]# [-0.19744901 0.16464897]]

Each time you run the code, you will likely get different random samples due to the nature of the random number generation.

4. Get the NumPy Random Values along Loc

When you pass loc parameter into this function, it will return the mean of the array’s random values from a normal distribution. When not used, by default it uses a 1.0 value.

You are generating a single random value from a normal distribution with a specified mean (loc=2). The numpy.random.normal() function is used to create random samples from a normal distribution. For instance, generate a single random sample from a normal distribution with a mean of 2.

# Get the mean of random valuesarr = np.random.normal(loc = 2)print("Random samples along the specified mean(loc):\n",arr)# Output:# Random samples along the specified mean(loc):# 2.5011574792753852

To generate an array of random values from a normal distribution along a specific mean (loc), you can use the numpy.random.normal() function with the desired mean and specify the size of the output array.

In the below example, desired_mean is set to 2, and the numpy.random.normal() function is used to generate a 3×4 array of random samples with the specified mean. Adjust the desired_mean and size parameters according to your specific requirements.

# Specify the desired mean (loc)desired_mean = 2# Get the mean of random valuesarr = np.random.normal(loc=desired_mean, size=(3, 4))print("Random samples along the specified mean(loc):\n",arr)# Output:# Random samples along the specified mean(loc):# [[0.55135362 2.50650811 1.19201646 0.90987418]# [1.04941199 2.38934861 2.57217131 0.97014783]# [3.40498152 1.8830481 2.86941805 0.70000707]]

5. Get the NumPy Random Values along Scale

When you pass the scale parameter into this function, it will return the standard deviation of the array’s random values from the normal distribution. When not used, by default it uses a 0.0 value.

# Get the standard deviation of random valuesarr = np.random.normal(scale = 4.0)print("Random samples along the specified standard deviation(scale):\n",arr)# Output:# Random samples along the specified standard deviation(scale):# 2.204554440088057

Alternatively, to generate random values from a normal distribution along a specific standard deviation (scale), you can use the numpy.random.normal() function with the desired standard deviation and specify the size of the output array.

In the below example, desired_std_dev is set to 2, and the numpy.random.normal() function is used to generate a 3×4 array of random samples with the specified standard deviation. Adjust the desired_std_dev and size parameters according to your specific requirements.

# Specify the desired standard deviation (scale)desired_std_dev = 2# Generate random samples along the specified standard deviationarr = np.random.normal(scale=desired_std_dev, size=(3, 4))print("Random samples along the specified standard deviation (scale):\n", arr)# Output:# Random samples along the specified standard deviation (scale):# [[-0.32245366 0.3488419 2.74035937 1.11156448]# [-0.91152624 -0.3869614 1.65888942 -1.17710673]# [ 0.98915812 1.05648689 1.94941816 2.84545044]]

6. Get the Random Values along Loc, Scale, & Size

If you want to generate random values from a normal distribution with specific mean (loc), standard deviation (scale), and size, you can use the numpy.random.normal() function with the desired parameters. It will return the array of the specified size of random samples from a normal distribution. Let’s take the example,

# Get the random values arr = np.random.normal( loc = 2, scale = 4.0, size = 5)print(arr)# Output:# [ 0.63610699 -1.31665607 0.85681477 -0.08999122 3.95373571]

7. Graphical representation of NumPy random.normal() function

To make ahistogramwith the help pyplot library and print the graph of NumPy random.normal() function.

# Import pyplot libraryfrom matplotlib import pyplot as plt output = np.random.normal( 1, 2.0, size = 5) print(output)count, bins, ignored = plt.hist( output, 50)plt.show()# Output:# [ 3.19098457 -1.50999446 2.53421593 4.44277223 4.1947252 ]
How to Use NumPy random.normal() In Python? (2)

Frequently Asked Questions

What does numpy.random.normal() do?

numpy.random.normal() is a function in the NumPy library that generates random samples from a normal (Gaussian) distribution. The normal distribution is characterized by two parameters: the mean (or average) and the standard deviation (a measure of the spread or width of the distribution).

Can I generate a single random number?

You can use numpy.random.normal() to generate a single random number. To do this, you need to set the size parameter to 1.

Can I use numpy.random.normal() for other distributions?

numpy.random.normal() specifically generates random samples from a normal (Gaussian) distribution. If you want to generate random samples from other distributions, NumPy provides different functions for various distributions.

How do I use it to generate random numbers with a specific mean and standard deviation?

To generate random numbers with a specific mean and standard deviation using numpy.random.normal(), you need to set the loc parameter to the desired mean and the scale parameter to the desired standard deviation.

Is the generated data truly random?

The term “random” in the context of computer-generated random numbers can be a bit misleading. The numbers generated by numpy.random.normal() and similar functions are not truly random in the sense of being unpredictable. They are generated using algorithms and are considered pseudorandom.

Conclusion

In this article, I have explained NumPy random.normal() and using this how to get the random values of 1-D NumPy array and multidimensional array, where the elements are from a normal distribution.

Related Articles

  • Python NumPy array copy
  • NumPy tile() Function in Python
  • How to Use NumPy clip() in Python
  • How to Use NumPy log() in Python?
  • Python NumPy Concatenate() Function
  • Python NumPy nonzero() Function
  • NumPy convolve() Function in Python
  • How to Use NumPy random seed() in Python
  • How to Use NumPy random.uniform() in Python?
  • How to Use NumPy random.randint() in Python
  • How to Use Numpy random.rand() in Python
  • How to Use NumPy random.randn() in Python?

References

How to Use NumPy random.normal() In Python? (2024)

References

Top Articles
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated:

Views: 5937

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.