En utilisant la bibliothèque NumPy, il est possible de créer une matrice de nombres réels aléatoires :
Créez une matrice 1D avec n nombres réels aléatoires.
Cela peut être fait en utilisant le module np.random et sa fonction random_sample().
import numpy as np
n = 10
data = np.random.random_sample(n)
Ce code produira des valeurs uniformément réparties entre 0 et 1.
array([0.95511311, 0.74047589, 0.68174737, 0.7318436 , 0.70291076,
0.17197878, 0.59607566, 0.42274757, 0.58774713, 0.29854085])
Créez une matrice de nombres décimaux aléatoires pour une forme donnée.
Pour créer une matrice de nombres décimaux aléatoires, il suffit de spécifier la forme souhaitée du tableau résultant.
Par exemple :
data = np.random.random_sample((5,3))
générera par exemple
array([[0.47, 0.17, 0.01],
[0.59, 0.07, 0.9 ],
[0.98, 0.63, 0.44],
[0.59, 0.31, 0.63],
[0.35, 0.48, 0.43]])
Fonctionnalités supplémentaires
Générer des nombres décimaux aléatoires entre [a, b]:
a = -20
b = 100
data = np.random.random_sample(20) * ( b - a ) + a
donne par exemple
array([ 72.66937232, 3.84588178, -19.33734595, 77.85537141,
64.82288126, 67.48086016, 72.5524416 , -11.11464179,
23.01588743, -6.09571286, 83.57241111, 54.79577522,
19.70776298, -12.37299797, 17.31787861, 19.02199864,
67.5527414 , 56.50689656, 86.46552911, 36.66579102])
Générer toujours les mêmes nombres décimaux aléatoires :
Pour cela, une solution consiste à utiliser une graine :
np.random.seed(42)
data = np.random.random_sample(10)
retournera toujours les mêmes nombres aléatoires :
array([0.37454012, 0.95071431, 0.73199394, 0.59865848, 0.15601864,
0.15599452, 0.05808361, 0.86617615, 0.60111501, 0.70807258])
Arrondir des nombres décimaux aléatoires
Pour cela, une solution consiste à utiliser la fonction numpy autour():
Par exemple.
data = np.random.random_sample((5,3))
donne
array([[0.47422826, 0.16659521, 0.0104256 ],
[0.59352088, 0.07216889, 0.89524555],
[0.98402745, 0.6329296 , 0.43614741],
[0.59215665, 0.30657867, 0.62781343],
[0.34791008, 0.47968316, 0.42866502]])
Ensuite
np.around(data,2)
donne
array([[0.47, 0.17, 0.01],
[0.59, 0.07, 0.9 ],
[0.98, 0.63, 0.44],
[0.59, 0.31, 0.63],
[0.35, 0.48, 0.43]])
Références
Liens | Site |
---|---|
numpy.random.random | numpy.org |
numpy.around | numpy.org |
How to create a matrix of random numbers with numpy in python ? | moonbooks.org |
How to round the values of a pandas DataFrame ? | moonbooks.org |