Weiter zum Inhalt

Zufallszahlengenerator mit NumPy – Tutorial

Das Modul random in NumPy bietet Funktionen zur Erzeugung pseudozufälliger Zahlen. Zufällig bedeutet, dass sich ein Ergebnis nicht logisch vorhersagen lässt.
Aktualisiert 18. Sept. 2026  · 4 Min. lesen

Entdecke KI

ChatGPTClaudePerplexity

Das Modul random in NumPy umfasst Funktionen zur Erzeugung pseudozufälliger Zahlen. Zufällig bedeutet, dass sich etwas nicht logisch vorhersagen lässt.

np.random.seed()-Funktion

In diesem Beispiel simulierst du einen Münzwurf. Du verwendest die Funktion np.random(), die eine Zahl zwischen 0 und 1 zieht, wobei alle Zahlen in diesem Intervall gleich wahrscheinlich sind.

Ist die gezogene Zahl kleiner als 0,5 (mit einer Wahrscheinlichkeit von 50%), gilt das als Kopf, andernfalls als Zahl. Solche Experimente mit genau zwei möglichen Ausgängen (True = Kopf, False = Zahl) nennt man Bernoulli-Experimente.

Pseudorandom-Zahlen entstehen, indem man mit einer ganzen Zahl, dem Seed, startet und daraus eine Folge von Zahlen generiert. Derselbe Seed führt zur gleichen Zahlenfolge – daher „pseudo“. Wenn du reproduzierbaren Code möchtest, setze den Zufallszahlengenerator mit der Funktion np.random.seed() auf einen festen Seed.

Für die Münzwürfe importierst du NumPy, setzt den Seed und ziehst dann vier Zufallszahlen. Mit dem Keyword size gibst du an, wie viele Zufallszahlen du erzeugen willst.

import numpy as np
np.random.seed(42)
random_numbers = np.random.random(size=4)
random_numbers
array([0.3745012, 0.95071431, 0.73199394, 0.59865848])

Die erste Zahl ist kleiner als 0,5, also Kopf, während die übrigen drei Zahl sind. Das kannst du mit dem Kleiner-als-Vergleich explizit zeigen: Er liefert ein Array aus Booleschen Werten – True für Kopf, False für Zahl.

heads = random_numbers < 0.5
heads
array([True, False, False, False], dtype=bool)

Schließlich kannst du die Anzahl der Köpfe berechnen, indem du das Boolesche Array heads summierst. In numerischem Kontext behandelt Python True als Eins und False als Null.

np.sum(heads)
1

Vier zufällige Münzwürfe simulieren

Im nächsten Beispiel wollen wir wissen, wie groß die Wahrscheinlichkeit ist, viermal Kopf zu erhalten, wenn wir die vier Würfe immer wieder wiederholen. Das geht mit einer for-Schleife.

Wir initialisieren zunächst den Zähler mit Null. Dann führen wir 10.000 Vier-Wurf-Durchläufe aus. Ergibt ein Durchlauf viermal Kopf, erhöhen wir den Zähler.

Wie groß ist also die Wahrscheinlichkeit für viermal Kopf? Das ist die Anzahl der Durchläufe mit ausschließlich Kopf, geteilt durch die Gesamtzahl der Durchläufe. Das Ergebnis liegt bei etwa 0,06.

n_all_heads = 0

# Anzahl der Vier-Kopf-Durchläufe ermitteln
for _ in range(10000):
         heads = np.random.random(size=4) < 0.5
         n_heads = np.sum(heads)
         if n_heads == 4:
             n_all_heads += 1

n_all_heads / 10000
0.0621

Interaktives Beispiel zur Erzeugung zufälliger Zahlen

In diesem Beispiel erzeugen wir viele Zufallszahlen zwischen 0 und 1 und zeichnen anschließend ein Histogramm. Sind die Zahlen wirklich zufällig, sollten alle Balken im Histogramm (nahezu) gleich hoch sein.

Dafür musst du:

  • Den Zufallszahlengenerator mit np.random.seed und dem Seed 42 initialisieren.
  • Ein leeres Array random_numbers mit 100.000 Einträgen zum Speichern der Zufallszahlen anlegen. Verwende dazu np.empty(100000).
  • Mit einer for-Schleife 100.000 Zufallszahlen über np.random.random() ziehen und im Array random_numbers speichern. Iteriere dazu über range(100000).
  • Ein Histogramm von random_numbers plotten. Beschriftungen der Achsen sind hier nicht nötig, da wir nur den Zufallszahlengenerator prüfen.
# Zufallszahlengenerator initialisieren
np.random.seed(42)

# Array für Zufallszahlen anlegen: random_numbers
random_numbers = np.empty(100000)

# Zufallszahlen erzeugen
for i in range(100000):
    random_numbers[i] = np.random.random()

# Histogramm zeichnen
_ = plt.hist(random_numbers)

# Plot anzeigen
plt.show()

Beim Ausführen des Codes erhältst du folgendes Ergebnis:

histogram

Probiere es selbst aus.

Mehr zu Zufallszahlengeneratoren und Hacker-Statistik findest du in diesem Video aus unserem Kurs Statistical Thinking in Python (Part 1).

Dieser Inhalt stammt aus dem DataCamp-Kurs Statistical Thinking in Python (Part 1) von Justin Bois.

Themen
Python

Erfahre mehr über Python

Kurs

Einführung in NumPy

4 Std.
62.8K
Du lernst anhand von Daten zum New Yorker Baumbestand, wie du mit NumPy Arrays erstellen, sortieren, filtern und aktualisieren kannst.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Ähnlich

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

3 Min.

Tutorial

Python range()-Funktion Tutorial

Lerne anhand von Beispielen die Python-Funktion range() und ihre Möglichkeiten kennen.
Aditya Sharma's photo

Aditya Sharma

7 Min.

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

5 Min.

Tutorial

Zahlen in Python quadrieren: Grundlagen und fortgeschrittene Methoden

Quadrieren in Python ist einfach: Nutze den eingebauten Operator ** oder setze für vielseitigere Lösungen NumPy, pow(), math.pow(), Bitoperatoren und weitere Funktionen ein.
Allan Ouko's photo

Allan Ouko

11 Min.

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

24 Min.

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

6 Min.

Mehr AnzeigenMehr Anzeigen