Skip to content

Instantly share code, notes, and snippets.

@AtelierCartographique
Last active February 6, 2025 21:05
Show Gist options
  • Save AtelierCartographique/4e85ff29642bb57072deacf08fee2709 to your computer and use it in GitHub Desktop.
Save AtelierCartographique/4e85ff29642bb57072deacf08fee2709 to your computer and use it in GitHub Desktop.
"""### **Génération de nombres aléatoires**"""
# Nombre réels aléatoires, selon une distribution uniforme :
a = np.random.rand(3, 3)
print(a)
# Nombre réels aléatoires, selon une distribution normale :
a = np.random.randn(3, 3)
print(a)
# Nombre entiers aléatoires entre 0 et 1, selon une distribution uniforme :
a = np.random.randint(0, 100, size=(3, 3))
print(a)
# Nombre aléatoires entre 0 et 1, selon une distribution uniforme. Voire : https://numpy.org/doc/1.16/reference/routines.random.html
import time
t0 = time.time() # Au passage, on chronométrera l'opération...
a = np.random.rand(25000000) # C'est ici qu'on génère l'array 2D remplie de nombres aléatoires
print(f"La génération de {a.size} nbr. aléatoires avec NumPy a pris {round(time.time() - t0, 2)}s")
print(f"La moyenne de tous ces nombres est de {round(a.mean(),3)}.")
# Pendant qu'on y est, et puisqu'on a parlé de la rapidité relative de NumPy par rapport à Python pur,
# comparons la durée de la génération de la même liste en Python pur...
import random
t0 = time.time()
l = []
for i in range(25000000):
l.append(random.random())
print(f"La génération de {len(l)} nbr. aléatoires en Python pur a pris {round(time.time() - t0, 2)}s")
# Nombres entiers (bornés) aléatoires
np.random.seed(12) # on peut spécifier une "seed" pour obtenir toujours les mêmes nombre aléatoires à l'intérieur de la même cellule.
np.random.randint(1,7,size=(3,3)) # Randint requiert le nombre minimum (inclus), le nombre maximum (exclus) et la taille/forme de l'array
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment