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
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()
Toutes les lois usuelles disponibles sont dans la documentation et vous pourrez en manipuler avec des widgets ici