Heim >Backend-Entwicklung >Python-Tutorial >Wie erzeuge ich Zufallszahlen mit einer bestimmten numerischen Verteilung in Python?

Wie erzeuge ich Zufallszahlen mit einer bestimmten numerischen Verteilung in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 04:43:02583Durchsuche

How to Generate Random Numbers with a Specified Numerical Distribution in Python?

Generieren von Zufallszahlen mit spezifizierter numerischer Verteilung

Wenn man vor der Aufgabe steht, Zufallszahlen zu generieren, die einer bestimmten Verteilung entsprechen, kann man über die Existenz bereits vorhandener Module nachdenken, die dazu in der Lage sind eine solche Aufgabe zu bewältigen. Schließlich handelt es sich hierbei um ein weit verbreitetes Problem mit einer potenziellen Lösung, die von zahlreichen Programmierern angegangen wurde.

Betrachten Sie das folgende Beispiel:

1 0.1
2 0.05
3 0.05
4 0.2
5 0.4
6 0.2

Hier haben wir eine Datei mit Werten und deren Werten entsprechende Wahrscheinlichkeiten. Um Zufallszahlen basierend auf dieser Verteilung zu generieren, könnten wir scipy.stats.rv_discrete verwenden. Indem wir unsere Wahrscheinlichkeiten über den Werteparameter angeben, können wir ein Verteilungsobjekt erstellen. Anschließend können wir die rvs()-Methode des Verteilungsobjekts verwenden, um Zufallszahlen zu generieren.

Eine andere praktikable Option ist jedoch die Verwendung von numpy.random.choice(). Diese Funktion akzeptiert einen p-Schlüsselwortparameter, der es uns ermöglicht, unsere Wahrscheinlichkeiten direkt anzugeben.

Zum Beispiel:

numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])

Und schließlich, für diejenigen, die Python 3.6 oder höher verwenden, random.choices() von Die Standardbibliothek bietet eine praktische Lösung.

Das obige ist der detaillierte Inhalt vonWie erzeuge ich Zufallszahlen mit einer bestimmten numerischen Verteilung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn