Write a program that generates N samples from a normal distribution with mean = 0 and SD = 1, then presents the histogram?
Question Analysis
The question requires you to write a program that performs two main tasks:
- Generate
N
samples from a normal distribution with a mean (μ
) of 0 and a standard deviation (σ
) of 1. This is also known as a standard normal distribution. - Create and display a histogram of these samples to visualize the distribution.
The task involves understanding how to work with statistical distributions and how to use programming libraries to generate random samples and plot data.
Answer
Here is a simple Python program using the numpy
and matplotlib
libraries to achieve the task:
import numpy as np
import matplotlib.pyplot as plt
# Define the number of samples
N = 1000 # You can change this to any number of samples you need
# Generate N samples from a standard normal distribution
samples = np.random.normal(loc=0, scale=1, size=N)
# Plot the histogram
plt.hist(samples, bins=30, alpha=0.7, color='blue', edgecolor='black')
# Add title and labels
plt.title('Histogram of Standard Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Frequency')
# Display the plot
plt.show()
Explanation:
-
numpy.random.normal()
: This function is used to generateN
random samples from a normal distribution. The parametersloc=0
andscale=1
specify the mean and standard deviation, respectively. -
matplotlib.pyplot.hist()
: This function creates a histogram. The parameterbins=30
specifies the number of bins in the histogram, which can be adjusted based on how detailed you want the histogram to be. Thealpha=0.7
makes the bars semi-transparent, andedgecolor='black'
adds a black outline to the bars for better readability. -
plt.show()
: This function is used to display the plot.
Ensure you have both numpy
and matplotlib
installed in your Python environment to run the above code. You can install them using pip install numpy matplotlib
if they are not already installed.