Générer des nombres aléatoires depuis une loi normale avec python

Published: 15 février 2017

DMCA.com Protection Status

Loi normale centrée réduite

Générer des nombres aléatoires depuis une loi normale centrée réduite (ou loi normale standard) en python:

Générer des nombres aléatoires depuis une loi normale centrée réduite avec python
Générer des nombres aléatoires depuis une loi normale centrée réduite avec python

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()

Loi normale

Si on sait comment générer des nombres aléatoires depuis une loi normale centrée réduite, on peut alors facilement générer des nombres aléatoires depuis une loi normale quelconque avec la formule $$X = Z * \sigma + \mu$$
ou Z est un nombres aléatoire généré depuis une loi normale centrée réduite, $\sigma$ la standard deviation et $\mu$ la moyenne.

Générer des nombres aléatoires depuis une loi normale avec python
Générer des nombres aléatoires depuis une loi normale avec python

import numpy as np
import matplotlib.pyplot as plt

mu = 10.0
sigma = 2.0

data = np.random.randn(100000) * sigma + mu

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 normal distribution with python')
plt.grid()

plt.savefig("numpy_random_numbers_normal_distribution.png", bbox_inches='tight')
plt.show()

Références

Liens Site
Normal distribution wikipedia
numpy.random.randn doc scipy
numpy.random.normal doc scipy
Image

of