Introduction
Générer des nombres aléatoire est un aspect essentiel de tout langage de programmation, car elle permet aux programmes de générer des sorties différentes à chaque exécution. En Python, le module random
nous permet de travailler avec des nombres aléatoires et d'effectuer différentes opérations sur eux. Cependant, si nous avons besoin d'une approche plus sophistiquée pour générer des entiers aléatoires, nous pouvons utiliser la bibliothèque numpy.
Utilisation de la méthode randint() du module python random
Pour générer des entiers aléatoires en Python, nous pouvons utiliser la méthode randint() du module random. Ce module fait partie de la bibliothèque standard de Python, ce qui signifie qu'il est préinstallé avec n'importe quelle installation de Python.
Cependant, nous devons d'abord importer le module avant de pouvoir l'utiliser dans notre code.
Pour importer le module random, nous pouvons utiliser la ligne de code suivante :
import random
Une fois le module importé, nous pouvons appeler la méthode randint(). La méthode randint() prend deux paramètres, a
et b
, qui représentent les limites inférieure et supérieure de notre nombre entier aléatoire.
Par exemple, si nous voulons générer un entier aléatoire entre 0 et 10 [0,10] (veuillez noter que la plage inclut à la fois 0 et 10), nous utiliserions le code suivant:
import random
random.randint(0,10)
Le résultat de ce code sera un entier aléatoire entre 0 et 10 inclus, en tenant compte du fait que chaque fois que nous exécutons ce code, nous obtenons une valeur différente.
Créez une liste d'entiers aléatoires.
Par exemple, une "list comprehension" peut être utilisée pour générer une liste d'entiers aléatoires :
[random.randint(0,10) for i in range(20)]
Le code ci-dessus générera par exemple le résultat suivant :
[6, 10, 5, 3, 0, 1, 10, 9, 4, 0, 0, 2, 10, 9, 7, 6, 9, 3, 3, 8]
Générer toujours les mêmes nombres aléatoires.
Pour générer de manière cohérente le même nombre aléatoire, nous pouvons utiliser la fonction random.seed(). Cette fonction prend un entier comme valeur de graine et la définit comme point de départ pour générer des nombres aléatoires. Par exemple,
random.seed(42)
[random.randint(0,10) for i in range(20)]
générera les mêmes nombres aléatoires :
[10, 1, 0, 4, 3, 3, 2, 1, 10, 8, 1, 9, 6, 0, 0, 1, 3, 3, 8, 9]
Cette fonction seed() peut être utile à des fins de test de code ou à des fins éducatives.
Utilisation de la méthode randint() de Numpy
Outre le module random, nous pouvons également utiliser la méthode randint() de la bibliothèque numpy. Numpy est une puissante bibliothèque de calcul numérique qui offre une large gamme de fonctions pour manipuler de grandes matrices et tableaux.
Créez un tableau d'entiers aléatoires.
Cependant, cette fois-ci nous utiliserons la méthode randint() de numpy à la place de celle du module random.
Dans ce cas, la méthode randint() prend trois paramètres : low
, high
et size
. Les deux premiers paramètres représentent les bornes inférieure et supérieure de notre entier aléatoire, tandis que le troisième paramètre (facultatif) spécifie la forme ou la taille de notre sortie. Si nous ne spécifions pas le paramètre size
, numpy renverra un seul entier aléatoire. Cependant, si nous passons un tuple spécifiant la forme, numpy renverra un tableau d'entiers aléatoires avec la forme spécifiée. Par exemple, si nous voulons générer un tableau de 10 entiers aléatoires :
import numpy as np
data = np.random.randint(0,10, size=10)
print(data)
générera par exemple
array([8, 1, 0, 0, 4, 4, 3, 6, 1, 3])
Un autre exemple, si nous voulons générer une matrice de 3x3 d'entiers aléatoires entre -5 et 5 (exclus), nous utiliserions le code suivant :
np.random.randint(-5, 5, size=(3,3))
La sortie de ce code sera un tableau 3x3 d'entiers aléatoires compris entre -5 et 5.
array([[ 4, 3, -2],
[-1, -3, -4],
[-2, 0, -2]])
Différence avec la fonction randint dans le module random de Python.
Il est important de noter la distinction clé entre la fonction randint du module random de Python, qui génère des nombres aléatoires dans la plage [a, b], et la fonction randint de numpy, qui génère des nombres aléatoires dans la plage [a, b[ (excluant b).
Générer toujours les mêmes nombres aléatoires.
Pour générer de manière cohérente le même nombre aléatoire, nous pouvons utiliser la fonction random.seed() de numpy. Cette fonction prend en entrée un entier en tant que valeur de graine et la définit comme point de départ pour la génération de nombres aléatoires. Par exemple,
np.random.seed(42)
np.random.randint(-5, 5, size=(3,3))
générera les mêmes nombres aléatoires :
array([[ 1, -2, 2],
[-1, 1, 4],
[-3, 1, 2]])
Références
Liens | Site |
---|---|
random | docs.python.org |
numpy randint | numpy.org |
Comment créer une liste de nombres entiers aléatoires avec python ? | moonbooks.org |
Générer des nombres aléatoires suivant une distribution gaussienne avec python ? | moonbooks.org |