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

Wie erzeuge ich Zufallszahlen mit einer bestimmten Verteilung in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-10 17:28:02702Durchsuche

How to Generate Random Numbers with a Specific Distribution in Python?

Zufallszahlen mit einer angegebenen (numerischen) Verteilung generieren

Dieser Artikel befasst sich mit der Herausforderung, Zufallszahlen basierend auf einer bestimmten Verteilung zu generieren. Insbesondere liegt der Fokus auf einer bestimmten Verteilung, wie sie in der Eingabe beschrieben ist:

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

Bestehende Module zur verteilungsbasierten Zufallszahlengenerierung

Es ist möglich, eine maßgeschneiderte Lösung für die Generierung zu entwickeln Zufallszahlen gemäß der angegebenen Verteilung. Dazu gehört die Erstellung der kumulativen Dichtefunktion und die Auswahl des entsprechenden Werts basierend auf einem zufällig generierten Wert zwischen 0 und 1. Zahlreiche vorhandene Module können diese Aufgabe jedoch vereinfachen, sodass keine manuelle Codierung erforderlich ist.

scipy.stats. rv_discrete

Ein solches Modul ist scipy.stats.rv_discrete, mit dem Sie Wahrscheinlichkeiten über seinen Werteparameter angeben können. Um Zufallszahlen zu generieren, können Sie die Methode rvs() des Verteilungsobjekts aufrufen.

numpy.random.choice()

Eine andere Möglichkeit ist die Verwendung von numpy.random.choice() Funktion. Es akzeptiert eine Liste von Werten und weist Wahrscheinlichkeiten mithilfe des Schlüsselwortparameters p zu. Zum Beispiel:

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

random.choices()

Für Python 3.6 und höher können Sie random.choices() aus der Standardbibliothek nutzen. Hier ist ein Beispiel:

import random
random.choices(range(1, 7), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])

Das obige ist der detaillierte Inhalt vonWie erzeuge ich Zufallszahlen mit einer bestimmten 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