Le module numpy.random Python
1. A propos du module numpy.random
numpy.random fait référence à un module de la bibliothèque NumPy, qui est largement utilisée pour le calcul scientifique en Python. Ce module fournit des fonctionnalités pour générer des nombres aléatoires et des échantillons aléatoires à partir de différentes distributions statistiques. Cela peut être utile dans de nombreux domaines tels que la simulation, les statistiques, l'apprentissage automatique, et plus encore.
2. Principales fonction du module numpy.random
Voici quelques-unes des principales fonctions et concepts associés à numpy.random :
- Seed et reproductibilité : Avant de générer des nombres aléatoires, vous pouvez définir une graine (seed) à l'aide de la fonction numpy.random.seed(). Cela permet de reproduire les mêmes séquences de nombres aléatoires à chaque exécution du code, ce qui peut être utile pour le débogage et la reproductibilité des résultats.
- Génération de nombres aléatoires : Vous pouvez générer des nombres aléatoires à partir de différentes distributions à l'aide de fonctions telles que numpy.random.random(), numpy.random.randint(), numpy.random.uniform(), numpy.random.normal(), etc.
- Echantillonnage aléatoire : Vous pouvez échantillonner au hasard à partir d'ensembles de données ou de séquences à l'aide de fonctions comme numpy.random.choice().
- Matrices aléatoires : Le module permet également de générer des matrices aléatoires à l'aide de fonctions telles que numpy.random.rand() et numpy.random.randn().
- Permutations et mélanges : Vous pouvez mélanger des séquences ou des tableaux à l'aide de numpy.random.shuffle() et générer des permutations aléatoires avec numpy.random.permutation().
- Distributions statistiques : Vous pouvez générer des échantillons aléatoires à partir de diverses distributions statistiques, telles que la distribution uniforme, normale, exponentielle, binomiale, etc.
- Générateurs de nombres aléatoires : NumPy fournit plusieurs générateurs de nombres aléatoires. Vous pouvez également créer vos propres générateurs personnalisés en utilisant le sous-module numpy.random.Generator.
- Eviter l'utilisation de numpy.random : Il est important de noter que numpy.random a été critiqué pour ne pas fournir une véritable génération de nombres aléatoires de haute qualité dans certaines situations. À partir de NumPy version 1.17, il est recommandé d'utiliser numpy.random.Generator pour obtenir des séquences de nombres aléatoires plus robustes et de meilleure qualité.
Pour plus d'informations, consulter la documentation officielle de NumPy: https://numpy.org/doc/ pour obtenir des informations plus détaillées sur l'utilisation de numpy.random ainsi que sur les bonnes pratiques en matière de génération de nombres aléatoires en Python.
3. Exemples d'usages du module numpy.random
Le module numpy.random est doté de nombreuses méthodes permettant de générer des nombres aléatoires, des matrices de nombres, tirer des échantillons aléatoires à partir d'un tableau donné... Nous allons voir dans ce paragraphe queques exemples d'usages:
Exemple avec la méthode numpy.random.rand()
1 2 3 |
"""Cette fonction génère des nombres aléatoires à partir d'une distribution uniforme dans l'intervalle [0, 1). Elle prend en argument les dimensions de la matrice que vous souhaitez générer.""" import numpy as np random_matrix = np.random.rand(3, 2) # Génère une matrice 3x2 de nombres aléatoires entre 0 et 1 |
Exemple avec la méthode numpy.random.randn()
1 2 3 |
"""Cette fonction génère des nombres aléatoires à partir d'une distribution normale (gaussienne)""" import numpy as np random_normal_matrix = np.random.randn(4, 3) # Génère une matrice 4x3 de nombres aléatoires selon une distribution normale |
Exemlpe avec la méthode numpy.random.randint()
1 2 3 |
"""Cette fonction génère des nombres entiers aléatoires dans un intervalle spécifié. Vous pouvez définir l'intervalle [low, high] ainsi que les dimensions de la sortie.""" import numpy as np random_integers = np.random.randint(1, 10, size=(3, 3)) # Génère une matrice 3x3 d'entiers aléatoires entre 1 (inclus) et 10 (exclus) |
Exemlpe avec la méthode numpy.random_sample()
1 2 3 |
"""Cette fonction génère des nombres aléatoires à partir d'une distribution uniforme dans l'intervalle [0, 1). Elle est similaire à numpy.random.rand().""" import numpy as np random_samples = np.random_sample(5) # Génère un tableau de 5 nombres aléatoires entre 0 et 1 |
Exemlpe avec la méthode numpy.random.choice()
1 2 3 4 |
"""Cette fonction permet de tirer des échantillons aléatoires à partir d'un tableau donné (ou d'une séquence). Vous pouvez spécifier la taille de l'échantillon et si le tirage est fait avec remplacement ou non.""" import numpy as np options = [1, 2, 3, 4, 5] random_selection = np.random.choice(options, size=3, replace=False) # Tire aléatoirement 3 éléments uniques de la liste "options" |
4. Liste des méthodes associées au module numpy.random
Voici une liste de quelques-unes des méthodes et fonctions importantes associées au sous-module numpy.random de la bibliothèque NumPy. Notez que cette liste n'est pas exhaustive, mais elle présente quelques-unes des méthodes couramment utilisées :
- seed() : Définit la graine (seed) pour le générateur de nombres aléatoires.
- rand() : Génère des nombres aléatoires à partir d'une distribution uniforme dans l'intervalle [0, 1).
- randn() : Génère des nombres aléatoires à partir d'une distribution normale (gaussienne) avec une moyenne de 0 et un écart type de 1.
- randint() : Génère des nombres entiers aléatoires dans un intervalle donné.
- random_sample() : Génère des nombres aléatoires à partir d'une
- choice() : Effectue un tirage aléatoire à partir d'une séquence donnée.
- shuffle() : Mélange aléatoirement les éléments d'une séquence ou d'un tableau.
- permutation() : Génère une permutation aléatoire d'une séquence ou d'un tableau.
- uniform() : Génère des nombres aléatoires à partir d'une distribution uniforme dans un intervalle donné.
- normal() : Génère des nombres aléatoires à partir d'une distribution normale avec une moyenne et un écart type donnés.
- exponential() : Génère des nombres aléatoires à partir d'une distribution exponentielle.
- binomial() : Génère des nombres aléatoires à partir d'une distribution binomiale.
- poisson() : Génère des nombres aléatoires à partir d'une distribution de Poisson.
- chisquare() : Génère des nombres aléatoires à partir d'une distribution du chi carré.
- gamma() : Génère des nombres aléatoires à partir d'une distribution gamma.
- choice() : Effectue un tirage aléatoire à partir d'une séquence donnée avec ou sans remplacement.
- normal() : Génère des nombres aléatoires à partir d'une distribution normale (gaussienne).
- uniform() : Génère des nombres aléatoires à partir d'une distribution uniforme.
- vonmises() : Génère des nombres aléatoires à partir d'une distribution de von Mises.
- pareto() : Génère des nombres aléatoires à partir d'une distribution de Pareto.
Ceci n'est qu'une sélection des fonctions disponibles dans numpy.random. Pour plus d'informations sur toutes les méthodes et leurs paramètres, il est recommandé de consulter la documentation officielle de NumPy: https://numpy.org/doc/.
Younes Derfoufi
CRMEF OUJDA