Zufallszahlen/ Verteilungsfunktion

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
python321
User
Beiträge: 3
Registriert: Freitag 5. Januar 2018, 09:59

Hallo zusammen,

ich habe eine Frage zu folgender Funktion:

np.random.randn(x,y)

kann diese Funktion auch mehr als 100 Arrays erzeugen also wenn ich an der Stelle wo das x steht 60.000 haben möchte an Stelle y würde z.b. 16 stehen. Ab 100 Arrays werden nicht mehr angezeigt. Ist der Rest im Speicher trotzdem vorhanden und wenn ich am Ende das ganze über eine csv Datei ausgebe, werden die Werte trotzdem ausgegeben oder ist die Funktion auf 100 Arrays beschränkt?

Gibt es für diese Funktion eine Alternative, die mir ebenfalls mehrere Arrays erzeugen kann jedoch nur positive Zahlen in einem bestimmten Bereich ausgibt? An der Normalverteilung stören mich die negativen Zahlen allerdings war das die einzige Funktion, die ich gefunden habe die mir mehrere Arrays ausgibt. Vielen Dank bereits im Voraus für eure Antworten.

Viele Grüße
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@python321: bevor Du Dich an ein konkretes Problem machst, solltest Du das Einführungstutorial zu numpy durcharbeiten. Das beantwortet wahrscheinlich die meisten Deiner Fragen. Was Du mit mehreren Arrays meinst, ist mir schleierhaft. Es wird jeweils nur ein Array erzeugt, das kann dann auch mehrdimensional sein. Die Hilfe zu den verschiedenen Random-Funktionen erklärt Dir dann auch Deine letzte Frage.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

wie kommst du denn darauf, dass `randn` ein Array der Form (100, 16) erzeugt, wenn du sagst, dass ein Array der Form (60_000, 16) erzeugt werden soll? Was sagt denn die Dokumentation über eine mögliche Beschränkung?

Deine zweite Frage kann ich nicht wirklich nachvollziehen. Welcher Verteilung sollen deine Zufallszahlen denn folgen? Das musst du doch wissen, bevor du dir eine Funktion suchst, die Zufallszahlen erzeugt. Ansonsten sind in der Dokumentation 34 andere Verteilungen aufgeführt.
python321
User
Beiträge: 3
Registriert: Freitag 5. Januar 2018, 09:59

Hallo zusammen,

danke für eure Antworten. Ich habe die Tutorials durchgearbeitet und konnte die Daten so erstellen wie ich das wollte. Allerdings habe ich nun ein Problem die Daten, die ich erstellt habe basieren auf folgender Grundlage:

y= (np.random.randn(10000,42)+3)/10
x= np.random.randn(10000,42)+10
a= y[:10000,0:6]
b= x[:10000,0:36]
z= np.hstack((a,b))

Die Werte aus z kommen in einen Dataframe und werden über Formeln verrechnet. Somit wird ein Bezug zwischen Ergebnis und den Zufallszahlen hergestellt. Das ganze dient dazu ein neuronales Netz zu trainieren. Allerdings komme ich dabei nur auf eine Trefferquote von 10% auch wenn ich die Zahl der Samples stark erhöhe. Was könnten die Ursache hierfür sein. Ist es möglich, dass das Netz nicht so gut lernt weil ich keine echten Testdaten habe und diese nur über eine Normalverteilung simuliert sind? Welche anderen Verteilungen könnte ich benutzen um ein bisschen zu experimentieren? In der Dokumentation von narpfel sind zwar einige aufgeführt aber ich weiß leider nicht wie ich diese als mehrdimensionales Array in gleicher Form wie oben ausgeben kann?
Bin für jeden Hinweis dankbar.
Antworten