Générer un tableau (matrice) de nombres aléatoires avec numpy de python


Pour créer un tableau (matrice) de nombres aléatoires avec numpy il existe la fonction numpy.random.rand, qui accepte comme argument les dimensions de la matrice, exemple:

>>> np.random.rand(5,2)
array([[ 0.16464348,  0.21037397],
       [ 0.50112698,  0.54692043],
       [ 0.28375204,  0.80156717],
       [ 0.09403288,  0.97277246],
       [ 0.28855412,  0.23052145]])

pour générer une matrice de dimension (5,2) dont les éléments sont générés aléatoirement dans l'intervalle [0,1[.

Note: Une fois que l'on sait comment générer des éléments aléatoirement dans l'intervalle [0,1[ on peut facilement générer des éléments aléatoirement dans un intervalle [a,b] quelconque par une simple transformation mathématiques: (b-a)*[0,1[ + a

>>> X = np.random.rand(5,2)
>>> X
array([[ 0.65670886,  0.43024765],
       [ 0.6688264 ,  0.46121732],
       [ 0.96284109,  0.73983768],
       [ 0.94589245,  0.41653401],
       [ 0.90351229,  0.65803306]])
>>> a = -100
>>> b = 100
>>> Y = (b-a) * X + a
>>> Y
array([[ 31.34177191, -13.95046932],
       [ 33.76528002,  -7.75653568],
       [ 92.56821751,  47.96753537],
       [ 89.17849049, -16.69319805],
       [ 80.70245821,  31.60661209]])

Note: voir aussi les fonctions numpy: numpy.random.random et numpy.random.random_sample, et des discussions sur les differences entre celles-ci: Difference between functions generating random numbers in numpy et Differences between numpy.random and random.random in Python.

Recherches associées