Heim  >  Artikel  >  Backend-Entwicklung  >  Wie generiert man Zufallszahlen mit benutzerdefinierten Verteilungen in Python?

Wie generiert man Zufallszahlen mit benutzerdefinierten Verteilungen in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-17 18:38:01599Durchsuche

How to Generate Random Numbers with Custom Distributions in Python?

Zufallszahlen mit benutzerdefinierten Verteilungen generieren

Im Bereich der Programmierung ist die Generierung von Zufallszahlen eine grundlegende Aufgabe. Für Szenarien, in denen die Verteilungen des Standard-Zufallsmoduls nicht ausreichen, beispielsweise bei der Simulation von Geburtstagen, ist es notwendig, Zahlen zu generieren, die benutzerdefinierten Verteilungen entsprechen.

Vorhandene Module für benutzerdefinierte Verteilungen

Glücklicherweise bietet das umfangreiche Bibliotheksökosystem von Python eine Lösung für dieses Problem. Ein solches Modul ist scipy.stats.rv_discrete, mit dem Sie die Wahrscheinlichkeiten für verschiedene Werte angeben und entsprechend Zufallszahlen generieren können. Der Parameter „values“ in rv_discrete nimmt eine Liste von Wahrscheinlichkeiten entgegen, die den möglichen Werten entsprechen.

Beispielverwendung von scipy.stats.rv_discrete

Um die Verwendung von rv_discrete zu veranschaulichen, betrachten Sie Folgendes: die folgende Beispiel:

import scipy.stats as stats

# Define the probabilities
probabilities = [0.1, 0.05, 0.05, 0.2, 0.4, 0.2]

# Create the discrete distribution
dist = stats.rv_discrete(values=(range(1, 7), probabilities))

# Generate random numbers
random_numbers = dist.rvs(size=10)

Zusätzliche Optionen

Über scipy.stats.rv_discrete hinaus bietet Pythons numpy.random.choice() einen alternativen Ansatz. Durch die Angabe der Wahrscheinlichkeiten mithilfe des p-Schlüsselwortparameters können Benutzer Zufallszahlen basierend auf einer benutzerdefinierten Verteilung generieren.

Python 3.6 und höher: random.choices()

Wenn Sie mit Python 3.6 oder höher arbeiten, enthält das Zufallsmodul eine Funktion random.choices(), die den Prozess der Generierung von Zufallszahlen mit benutzerdefinierten Funktionen vereinfacht Verteilungen.

Fazit

Ob Sie sich für scipy.stats.rv_discrete, numpy.random.choice() oder random.choices() entscheiden, Python bietet eine umfassende Eine Reihe von Tools zum Generieren von Zufallszahlen, die benutzerdefinierten Verteilungen entsprechen und es Ihnen ermöglichen, statistische Herausforderungen effektiv zu bewältigen.

Das obige ist der detaillierte Inhalt vonWie generiert man Zufallszahlen mit benutzerdefinierten Verteilungen 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