import numpy as np # package de calcul scientifique
import matplotlib.pyplot as plt # package graphique
= np.random.default_rng()
generateur generateur.normal()
-0.3978808838216401
python/numpy
Le module random
de numpy
permet d’utiliser l’aléatoire et des lois usuelles en Python. On crée d’abord un générateur qui nous permettra ensuite d’appeler les lois voulues comme suite:
import numpy as np # package de calcul scientifique
import matplotlib.pyplot as plt # package graphique
= np.random.default_rng()
generateur generateur.normal()
-0.3978808838216401
Créer une matrice de taille 4\times 5 dont les entrées sont i.i.d de loi de Laplace d’espérance 0 et de variance 2. Lancer plusieurs fois le code et observez les changements. On pourra s’aider de l’aide en ligne si besoin.
= np.random.default_rng()
generateur = ... # XXX TODO
M print(M)
Pour reproduire des résultats ou débugger un code, il est utile de “figer” l’aléatoire. On utilise pour cela une graine (en: seed) dans la création du générateur. Fixez la graine à 0 dans default_rng()
et lancez une génération aléatoire. Commenter.
= np.random.default_rng(0)
rng
rng.normal()= np.random.default_rng(...)
rng2 rng.normal()
Avec plt.subplot
, créer 3 histogrammes de 100 tirages aléatoires de distributions suivantes:
On utilisera les mêmes paramètes de centrage et d’échelle pour les trois lois.
= 10000
n_samples = np.empty([n_samples, 3])
X 0] = ...
X[:, 1] = ...
X[:, 2] = ...
X[:,
= ["Loi de Gauss", "Loi de Laplace", "Loi de Cauchy"]
lois
= plt.subplots(3, 1, figsize=(3, 3))
fig_hist, ax
for i, name in enumerate(lois):
=100, density=True)
ax[i].hist(..., bins
ax[i].set_title(name)
plt.tight_layout() plt.show()