Moyen Simple de créer un tableau 2D avec des nombres aléatoires (Python)
Je sais qu'un moyen facile de créer une matrice NxN plein de zéros en Python est, avec:
[[0]*N for x in range(N)]
Cependant, supposons que je veux créer le tableau en le remplissant avec des nombres aléatoires:
[[random.random()]*N for x in range(N)]
Cela ne fonctionne pas, parce que chaque nombre aléatoire qui est créé est ensuite répliquée N fois, de sorte que mon tableau n'a pas de NxN nombres aléatoires.
Est-il un moyen de le faire en une seule ligne, sans l'aide de boucles for?
OriginalL'auteur user46242 | 2014-06-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une liste imbriquée compréhension:
Ou de l'utilisation
numpy
(non stdlib mais très populaire):(P. S. C'est une bonne idée d'obtenir dans l'habitude de dire
list
quand vous voulez direlist
et réserverarray
pour numpyndarray
s. Il y a en fait un haut-array
module avec sa proprearray
type, de sorte que les confond encore les choses, mais il est relativement peu utilisés.)OriginalL'auteur DSM
Suffit d'utiliser
[random.random() for i in range(N)]
à l'intérieur de votre compréhension de liste.Démo:
OriginalL'auteur timgeb
Vous pouvez utiliser interprétations de la liste.
https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
Pour les grandes multi dimensions des tableaux, je vous suggère d'utiliser numpy.
OriginalL'auteur Sunjay Varma
Il peut être fait sans une boucle. Essayez cette simple ligne de code pour générer un 2 de 3 de la matrice de nombres aléatoires de moyenne 0 et d'écart type 1.
la syntaxe est la suivante :
numpy.aléatoire.la normale(moyenne, écart-type (lignes,colonnes))
exemple :
numpy.aléatoire.normale(0,1,(2,3))
OriginalL'auteur seakyourpeak