Ich versuche eine Matrix von Zufallszahlen zu erstellen, aber meine Lösung ist zu lang und sieht hässlich aus
random_matrix = [[random.random() for e in range(2)] for e in range(3)]
Das sieht in Ordnung aus, ist es aber in meiner Implementierung
weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]
Das ist extrem unlesbar und passt nicht in eine Zeile.
python
random
coding-style
user2173836
quelle
quelle
numpy.random.random_integers(low, high, shape)
, zBnumpy.random.random_integers(0, 100, (3, 3))
numpy.random.random
wie viele anderenumpy.random
Methoden Formen, dh N-Tupel. Die äußeren Klammern stellen also wirklich den Aufruf der Methode darnumpy.random.random()
, und die inneren Klammern sind syntaktischer Zucker zum Instanziieren des Tupels(3, 3)
, das an die Funktion übergeben wird.numpy.random.random_integers()
ist veraltet. Verwenden Sienumpy.random.randint()
stattdessen. docs.scipy.org/doc/numpy/reference/generated/…Verwenden Sie
np.random.randint()
wienumpy.random.random_integers()
veraltetquelle
Sieht so aus, als würden Sie eine Python-Implementierung der Übung Coursera Machine Learning Neural Network durchführen. Folgendes habe ich für randInitializeWeights getan (L_in, L_out)
quelle
Erstellen Sie zuerst ein
numpy
Array und konvertieren Sie es dann inmatrix
. Siehe den folgenden Code:quelle
Für Zufallszahlen von 10. Für von 20 müssen wir mit 20 multiplizieren.
quelle
Wenn Sie "eine Matrix von Zufallszahlen" sagen, können Sie numpy als Pavel https://stackoverflow.com/a/15451997/6169225 verwenden , in diesem Fall gehe ich davon aus, dass es für Sie irrelevant ist, welche Verteilung diese (Pseudo) ) Zufallszahlen halten sich an.
Wenn Sie jedoch eine bestimmte Verteilung benötigen (ich glaube, Sie interessieren sich für die gleichmäßige Verteilung), stehen
numpy.random
Ihnen sehr nützliche Methoden zur Verfügung. Angenommen, Sie möchten eine 3x2-Matrix mit einer pseudozufälligen Gleichverteilung, die durch [niedrig, hoch] begrenzt ist. Sie können dies folgendermaßen tun:Beachten Sie, dass Sie
uniform
durch eine beliebige Anzahl von Distributionen ersetzen können, die von dieser Bibliothek unterstützt werden.Weiterführende Literatur: https://docs.scipy.org/doc/numpy/reference/routines.random.html
quelle
Eine einfache Möglichkeit, ein Array von zufälligen Ganzzahlen zu erstellen, ist:
Im Folgenden wird eine 2 x 3-Matrix zufälliger Ganzzahlen von 0 bis 10 ausgegeben:
quelle
Zum Erstellen eines Arrays von Zufallszahlen bietet NumPy die Erstellung von Arrays mit:
Reale Nummern
Ganzzahlen
Zum Erstellen eines Arrays mit zufälligen reellen Zahlen gibt es zwei Möglichkeiten
random.rand
random.randn
Zum Erstellen eines Arrays mit zufälligen Ganzzahlen:
wo
z.B:
Das gegebene Beispiel erzeugt ein Array von zufälligen ganzen Zahlen zwischen 0 und 4, seine Größe ist 5 * 5 und hat 25 ganze Zahlen
Um eine 5 x 5-Matrix zu erstellen, sollte diese in geändert werden
arr2 = np.random.randint (0,5, size = (5,5)), ändern Sie das Multiplikationssymbol * in ein Komma, #
eg2:
Das gegebene Beispiel erzeugt ein Array von zufälligen ganzen Zahlen zwischen 0 und 1, seine Größe ist 1 * 10 und hat 10 ganze Zahlen
quelle
quelle
Eine Antwort mit Map-Reduce: -
quelle
quelle
numpy.random.rand (Zeile, Spalte) generiert Zufallszahlen zwischen 0 und 1 gemäß den angegebenen (m, n) Parametern. Verwenden Sie es also, um eine (m, n) Matrix zu erstellen und die Matrix für die Bereichsgrenze zu multiplizieren und mit der oberen Grenze zu summieren.
Analysieren: Wenn Null generiert wird, wird nur die Untergrenze gehalten, aber wenn Eins generiert wird, wird nur die Obergrenze gehalten. In Ordnungswörtern können Sie durch Generieren der Grenzwerte mit rand numpy die extrem gewünschten Zahlen generieren.
Ausgabe:
quelle