Einfache Methode zum Erstellen eines 2D-Arrays mit Zufallszahlen (Python)

7

Ich weiß, dass ein einfacher Weg, um ein NxN-Array voller Nullen in Python zu erstellen, ist mit:

%Vor%

Nehmen wir an, ich möchte das Array erstellen, indem Sie es mit Zufallszahlen füllen:

%Vor%

Dies funktioniert nicht, weil jede Zufallszahl, die erstellt wird, N-mal repliziert wird, so dass mein Array keine eindeutigen NxN-Zufallszahlen hat.

Gibt es eine Möglichkeit, dies in einer einzigen Zeile zu tun, ohne for-Schleifen zu verwenden?

    
user46242 08.06.2014, 16:46
quelle

4 Antworten

19

Sie könnten ein geschachteltes Listenverständnis verwenden:

%Vor%

Oder verwenden Sie numpy (nicht-stdlib, aber sehr beliebt):

%Vor%

(PS) Es ist eine gute Idee, list zu sagen, wenn du list meinst und array für numpy ndarray s reservierst. Es gibt tatsächlich ein eingebautes array -Modul mit einem eigenen array type, so dass die Dinge noch mehr verwechselt werden, aber es wird relativ selten verwendet.)

    
DSM 08.06.2014 16:49
quelle
3

Sie können Listenübersichten verwenden.

%Vor%

Ссылка

Bei großen mehrdimensionalen Arrays empfehle ich allerdings, numpy zu verwenden.

    
Sunjay Varma 08.06.2014 16:52
quelle
2

Verwenden Sie einfach [random.random() for i in range(N)] in Ihrem Listenverständnis.

Demo:

%Vor%     
timgeb 08.06.2014 16:50
quelle
1

Es kann ohne Schleife gemacht werden. Probieren Sie diese einfache Codezeile aus, um eine 2 mal 3 Matrix von Zufallszahlen mit Mittelwert 0 und Standardabweichung 1 zu erzeugen.

Die Syntax lautet:

numpy.random.normal (Mittelwert, Standardabweichung, (Zeilen, Spalten))

Beispiel:

numpy.random.normal (0,1, (2,3))

    
seakyourpeak 23.10.2017 14:42
quelle

Tags und Links