import numpy as np # package de calcul scientifique
import matplotlib.pyplot as plt # package graphique
generateur = np.random.default_rng()
generateur.normal()-0.3978808838216401
python/numpynumpy.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
generateur = np.random.default_rng()
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.
generateur = np.random.default_rng()
M = ... # XXX TODO
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.
rng = np.random.default_rng(0)
rng.normal()
rng2 = np.random.default_rng(...)
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.
n_samples = 10000
X = np.empty([n_samples, 3])
X[:, 0] = ...
X[:, 1] = ...
X[:, 2] = ...
lois = ["Loi de Gauss", "Loi de Laplace", "Loi de Cauchy"]
fig_hist, ax = plt.subplots(3, 1, figsize=(3, 3))
for i, name in enumerate(lois):
ax[i].hist(..., bins=100, density=True)
ax[i].set_title(name)
plt.tight_layout()
plt.show()Toutes les lois usuelles disponibles sont dans la documentation et vous pourrez en manipuler avec des widgets ici