Hallo
ich möchte gerne eine Liste mit Zufallszahlen (Float) generieren. Anzahl der elemente variabel (mal 5, 10, mal 100 elemente...)
Ich habe zwar paar seiten gefunden die random behandeln aber nicht genau das was ich will..
ich möchte als beispiel eine liste mit 5 oder 100 elementen erzeugen, aber mit begrenzung (zB. Minimum 1.0 und maximum 5.0):
RandomList = [1.1, 2.6, 4.4, 3.2, 1.0]
Ist sowas ohne grossen aufwand möglich?
Ich konnte im netz leider nix auf die schnelle finden
gruss
Random Liste (Anzahl Elemente variabel und in Float)
Code: Alles auswählen
import random
list_count = 100
random_list = [ round(random.uniform(1.0, 5.0), 1) for r in xrange(list_count) ]
it numpy kann man sogar direkt arrays mit zufallszahlen erstellen:
Das geht dann auch wesentlich schneller als mit dem random-Modul. Zudem lassen sich noch eine ganz Reihe weiterer Verteilungen erzeuen.
MFG HerrHagen
Code: Alles auswählen
>>> import numpy
>>> numpy.random.randint(0, 6, 10)
array([3, 3, 0, 5, 5, 3, 4, 3, 1, 4])
MFG HerrHagen
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Das kann das Random-Modul auch.HerrHagen hat geschrieben: Zudem lassen sich noch eine ganz Reihe weiterer Verteilungen erzeuen.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Er will aber floats habenHerrHagen hat geschrieben:it numpy kann man sogar direkt arrays mit zufallszahlen erstellen:Das geht dann auch wesentlich schneller als mit dem random-Modul. Zudem lassen sich noch eine ganz Reihe weiterer Verteilungen erzeuen.Code: Alles auswählen
>>> import numpy >>> numpy.random.randint(0, 6, 10) array([3, 3, 0, 5, 5, 3, 4, 3, 1, 4])
MFG HerrHagen
oder gibt es auch randfloat()?
hallo
danke für den tipp , aber das funktioniert nicht so ganz. das ist der output:
[1.3, 1.1000000000000001, 1.0, 4.0999999999999996, 3.2000000000000002]
[3.2000000000000002, 2.8999999999999999, 3.2000000000000002, 2.0, 4.2999999999999998]
[4.2000000000000002, 4.0999999999999996, 1.1000000000000001, 2.2999999999999998, 1.6000000000000001]
[4.0999999999999996, 3.1000000000000001, 4.0, 4.5999999999999996, 2.7000000000000002]
[1.6000000000000001, 2.7999999999999998, 3.2999999999999998, 1.6000000000000001, 3.3999999999999999]
[1.7, 4.7000000000000002, 3.7000000000000002, 3.7999999999999998, 4.7999999999999998]
[3.7000000000000002, 2.2000000000000002, 1.3999999999999999, 3.8999999999999999, 2.5]
[3.5, 3.2999999999999998, 2.3999999999999999, 2.6000000000000001, 3.2999999999999998]
[4.4000000000000004, 3.6000000000000001, 3.2000000000000002, 4.5, 1.3]
[4.9000000000000004, 2.3999999999999999, 2.7999999999999998, 4.2000000000000002, 4.9000000000000004]
[2.2000000000000002, 4.0, 4.5999999999999996, 3.6000000000000001, 2.8999999999999999]
??
das random scheint zu hacken
danke für den tipp , aber das funktioniert nicht so ganz. das ist der output:
[1.3, 1.1000000000000001, 1.0, 4.0999999999999996, 3.2000000000000002]
[3.2000000000000002, 2.8999999999999999, 3.2000000000000002, 2.0, 4.2999999999999998]
[4.2000000000000002, 4.0999999999999996, 1.1000000000000001, 2.2999999999999998, 1.6000000000000001]
[4.0999999999999996, 3.1000000000000001, 4.0, 4.5999999999999996, 2.7000000000000002]
[1.6000000000000001, 2.7999999999999998, 3.2999999999999998, 1.6000000000000001, 3.3999999999999999]
[1.7, 4.7000000000000002, 3.7000000000000002, 3.7999999999999998, 4.7999999999999998]
[3.7000000000000002, 2.2000000000000002, 1.3999999999999999, 3.8999999999999999, 2.5]
[3.5, 3.2999999999999998, 2.3999999999999999, 2.6000000000000001, 3.2999999999999998]
[4.4000000000000004, 3.6000000000000001, 3.2000000000000002, 4.5, 1.3]
[4.9000000000000004, 2.3999999999999999, 2.7999999999999998, 4.2000000000000002, 4.9000000000000004]
[2.2000000000000002, 4.0, 4.5999999999999996, 3.6000000000000001, 2.8999999999999999]
??
das random scheint zu hacken
fff gh
Das liegt am ungenauen float.
Code: Alles auswählen
>>> x = 10
>>> for i in range(10):
... x-=0.1
...
>>> x
9.0000000000000036
>>> x == 9
False
>>> x == 9.0
False
Zuletzt geändert von jbs am Dienstag 15. Dezember 2009, 13:12, insgesamt 1-mal geändert.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Nein, random hakt nicht, sondern die Objekt-Präsentationsweise der Float-Liste in deiner Interpreter-Console.gooogle hat geschrieben: ...
das random scheint zu hacken
Ich vermute mal Du hast folgendes gemacht:
Code: Alles auswählen
>>> import random
>>> import random
>>> list_count = 5
>>> random_list = [ round(random.uniform(1.0, 5.0), 1) for r in xrange(list_count) ]
>>> random_list
[3.7000000000000002, 3.1000000000000001, 4.7999999999999998, 2.7999999999999998, 4.7999999999999998]
Code: Alles auswählen
>>> for r in random_list: print r
Code: Alles auswählen
...
3.7
3.1
4.8
2.8
4.8
Na das das:Hyperion hat geschrieben:Und: Was heißt dasEyDu hat geschrieben:Was heißt denn "funktioniert nicht"?
gooogle hat geschrieben:aber das funktioniert nicht so ganz
Das Leben ist wie ein Tennisball.
Klar. Sogar mit einstellbarer Zahl von Vor und Nachkommastellen:Hyperion hat geschrieben:oder gibt es auch randfloat()?
Code: Alles auswählen
In [1]: import random
In [2]: def randfloat(v, n):
...: i = "".join([str(random.randint(0, 9)) for _ in xrange(v)])
...: j = "".join([str(random.randint(0, 9)) for _ in xrange(n)])
...: return float(i + "." + j)
...:
In [3]: randfloat(3, 5)
Out[3]: 224.64043
"Kids, don't do this at home!"