Einfache Möglichkeit zum erstellen einer 2D-array mit Zufallszahlen (Python)
Ich weiß, dass eine einfache Möglichkeit zum erstellen einer NxN array voller Nullen in Python ist mit:
[[0]*N for x in range(N)]
Aber, mal angenommen, ich möchte zu erstellen, die das array füllen mit Zufallszahlen:
[[random.random()]*N for x in range(N)]
Diese funktioniert nicht, da jedes zufällige Zahl, die erstellt wird, ist dann N-mal repliziert, so dass mein array nicht NxN einzigartige Zufallszahlen.
Gibt es eine Möglichkeit, dies zu tun, in einer einzigen Zeile, ohne die Verwendung von for-Schleifen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könntest du eine geschachtelte Liste Verständnis:
Oder verwenden Sie
numpy
(nicht-stdlib, aber sehr beliebt):(P. S. Es ist eine gute Idee zu bekommen in die Gewohnheit, zu sagen:
list
wenn du meinstlist
und reservierenarray
für numpyndarray
s. Gibt es eigentlich eine eingebautearray
Modul mit seiner eigenenarray
geben, so das verwirrt die Sache noch mehr, aber es ist relativ selten verwendet.)(A + np.random.random((N,N)) * (B - A)).astype(int)
Verwenden Sie einfach
[random.random() for i in range(N)]
innerhalb Ihrer Liste erfassen.Demo:
Können Sie die Liste Verstehens.
https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
Für große multi-dimensionale arrays, schlage ich vor, Sie numpy obwohl.
Es kann getan werden, ohne eine Schleife. Versuchen Sie, diese einfache Zeile code für die Erstellung einer 2 von 3-matrix von Zufallszahlen mit Mittelwert 0 und Standardabweichung 1.
Die syntax ist :
Beispiel :