120 votes

Un moyen simple de créer une matrice de nombres aléatoires

J'essaie de créer une matrice de nombres aléatoires, mais ma solution est trop longue et peu esthétique.

random_matrix = [[random.random() for e in range(2)] for e in range(3)]

cela semble correct, mais dans mon implémentation, c'est

weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]

qui est extrêmement illisible et ne tient pas sur une ligne.

4voto

Lokesh Sharma Points 145

D'abord, créez numpy puis le convertir en matrix . Voir le code ci-dessous :

import numpy

B = numpy.random.random((3, 4)) #its ndArray
C = numpy.matrix(B)# it is matrix
print(type(B))
print(type(C)) 
print(C)

2voto

x = np.int_(np.random.rand(10) * 10)

Pour des nombres aléatoires sur 10. Pour les nombres sur 20, il faut multiplier par 20.

2voto

Marquistador Points 519

Lorsque vous dites "une matrice de nombres aléatoires", vous pouvez utiliser numpy comme Pavel https://stackoverflow.com/a/15451997/6169225 mentionné ci-dessus, dans ce cas, je suppose que pour vous, la distribution à laquelle ces nombres (pseudo) aléatoires adhèrent n'a aucune importance.

Toutefois, si vous avez besoin d'une distribution particulière (j'imagine que vous êtes intéressé par la distribution uniforme), numpy.random a des méthodes très utiles pour vous. Par exemple, disons que vous voulez une matrice 3x2 avec une distribution uniforme pseudo-aléatoire délimitée par [low,high]. Vous pouvez le faire comme suit :

numpy.random.uniform(low,high,(3,2))

Remarque, vous pouvez remplacer uniform par un nombre quelconque de distributions prises en charge par cette bibliothèque.

Pour en savoir plus : https://docs.scipy.org/doc/numpy/reference/routines.random.html

2voto

Runner Points 21

Un moyen simple de créer un tableau d'entiers aléatoires est le suivant :

matrix = np.random.randint(maxVal, size=(rows, columns))

Ce qui suit produit une matrice 2 par 3 d'entiers aléatoires de 0 à 10 :

a = np.random.randint(10, size=(2,3))

1voto

GodMan Points 928

Une réponse utilisant map-reduce:-

map(lambda x: map(lambda y: ran(),range(len(inputs[0]))),range(hiden_neurons))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X