From a sample of data stored in an array, a solution to calculate the mean and standrad deviation in python is to use numpy with the functions numpy.mean and numpy.std respectively. For testing, let generate random numbers from a normal distribution with a true mean (mu = 10) and standard deviation (sigma = 2.0:)
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> mu = 10.0
>>> sigma = 2.0
>>> x = np.random.randn(10000) * sigma + mu
if we now use np.mean(x) and np.std(x) to estimate the mean and standard deviation:
>>> print('mean: 'np.mean(x))
>>> print('standard deviation', np.std(x))
returns for example:
10.003818651607594
1.9969664232497317
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randn(100000)
hx, hy, _ = plt.hist(data, bins=50, normed=1,color="lightblue")
plt.ylim(0.0,max(hx)+0.05)
plt.title('Generate random numbers \n from a standard normal distribution with python')
plt.grid()
plt.savefig("numpy_random_numbers_stantard_normal_distribution.png", bbox_inches='tight')
plt.show()
References
Links | Site |
---|---|
numpy.mean | docs.scipy.org |
numpy.std | docs.scipy.org |