Nombres aléatoires dans NumPy


Qu'est-ce qu'un nombre aléatoire ?

Un nombre aléatoire ne signifie PAS un nombre différent à chaque fois. Aléatoire signifie quelque chose qui ne peut pas être prédit logiquement.

Pseudo aléatoire et vrai aléatoire.

Les ordinateurs fonctionnent sur des programmes, et les programmes sont un ensemble définitif d'instructions. Cela signifie donc qu'il doit également y avoir un algorithme pour générer un nombre aléatoire.

S'il existe un programme pour générer un nombre aléatoire, il peut être prédit, il n'est donc pas vraiment aléatoire.

Les nombres aléatoires générés par un algorithme de génération sont appelés pseudo-aléatoires .

Peut-on faire des nombres vraiment aléatoires ?

Oui. Afin de générer un nombre vraiment aléatoire sur nos ordinateurs, nous devons obtenir les données aléatoires d'une source extérieure. Cette source extérieure est généralement nos frappes au clavier, les mouvements de la souris, les données sur le réseau, etc.

Nous n'avons pas vraiment besoin de nombres aléatoires, à moins qu'ils ne soient liés à la sécurité (par exemple, les clés de cryptage) ou que la base d'application soit le caractère aléatoire (par exemple, les roulettes numériques).

Dans ce didacticiel, nous utiliserons des nombres pseudo-aléatoires.


Générer un nombre aléatoire

NumPy propose le randommodule pour travailler avec des nombres aléatoires.

Exemple

Générez un entier aléatoire de 0 à 100 :

from numpy import random

x = random.randint(100)

print(x)

Générer un flottant aléatoire

La rand()méthode du module random renvoie un flottant aléatoire entre 0 et 1.

Exemple

Générez un flottant aléatoire de 0 à 1 :

from numpy import random

x = random.rand()

print(x)


Générer un tableau aléatoire

Dans NumPy, nous travaillons avec des tableaux et vous pouvez utiliser les deux méthodes des exemples ci-dessus pour créer des tableaux aléatoires.

Entiers

La randint()méthode prend un size paramètre dans lequel vous pouvez spécifier la forme d'un tableau.

Exemple

Générez un tableau 1-D contenant 5 entiers aléatoires de 0 à 100 :

from numpy import random

x=random.randint(100, size=(5))

print(x)

Exemple

Générez un tableau 2D avec 3 lignes, chaque ligne contenant 5 entiers aléatoires de 0 à 100 :

from numpy import random

x = random.randint(100, size=(3, 5))

print(x)

Flotteurs

La rand()méthode vous permet également de spécifier la forme du tableau.

Exemple

Générez un tableau 1-D contenant 5 flottants aléatoires :

from numpy import random

x = random.rand(5)

print(x)

Exemple

Générez un tableau 2D avec 3 lignes, chaque ligne contenant 5 nombres aléatoires :

from numpy import random

x = random.rand(3, 5)

print(x)

Générer un nombre aléatoire à partir d'un tableau

La choice()méthode vous permet de générer une valeur aléatoire basée sur un tableau de valeurs.

La choice()méthode prend un tableau comme paramètre et renvoie aléatoirement l'une des valeurs.

Exemple

Renvoie l'une des valeurs d'un tableau :

from numpy import random

x = random.choice([3, 5, 7, 9])

print(x)

La choice()méthode vous permet également de renvoyer un tableau de valeurs.

Ajoutez un sizeparamètre pour spécifier la forme du tableau.

Exemple

Générez un tableau 2D composé des valeurs du paramètre tableau (3, 5, 7 et 9) :

from numpy import random

x = random.choice([3, 5, 7, 9], size=(3, 5))

print(x)