suchen
HeimBackend-EntwicklungPython-TutorialWie implementiert man eine gewichtete Zufallsauswahl in Python?

Wie implementiert man eine gewichtete Zufallsauswahl in Python?

Python ist eine flexible und effiziente Programmiersprache, die eine breite Palette an Low-Level-Funktionen und Bibliotheken zur Verbesserung komplexer Codierungsaufgaben bereitstellt. Eine der Aufgaben besteht darin, eine gewichtete unregelmäßige Entscheidungsfindung durchzuführen, eine messbare Strategie, bei der alles eine vordefinierte Wahrscheinlichkeit hat, ausgewählt zu werden. Im Gegensatz zur einfachen Zufallsauswahl, bei der jedes Element die gleiche Wahrscheinlichkeit hat, ausgewählt zu werden, ermöglicht uns die gewichtete Zufallsauswahl, eine Wahrscheinlichkeit für die Auswahl jedes Elements anzugeben, die variieren kann. Ziel dieses Artikels ist es, ein umfassendes Verständnis dafür zu vermitteln, wie man in Python eine gewichtete Zufallsauswahl erhält.

Grammatik

Die Hauptmethode in Python, die gewichtete Zufallsauswahlen ermöglicht, ist random.choices(). Dies ist die grundlegende Syntax:

random.choices(population, weights=None, cum_weights=None, k=1)
  • Bevölkerung ist ein notwendiger Bestandteil. Sie werden aus dieser Liste auswählen.

  • Keine Pflicht zur Gewichtsangabe. Eine Liste von Gewichtungen, die jedem einzelnen Mitglied der Gesamtliste entsprechen.

  • cum_weights ist ein völlig optionales Feld. Liste der akkumulierten Gewichte.

  • Der Buchstabe k ist nicht erforderlich. Eine Ganzzahl, die die Anzahl der auszuwählenden Elemente angibt. Der Standardwert ist 1.

Algorithmus

Um die Funktionsweise der gewichteten Zufallsauswahl besser zu verstehen, befolgen Sie bitte den folgenden Schritt-für-Schritt-Algorithmus:

  • Importieren Sie das Zufallsmodul in Python.

  • Definieren Sie die Population, d. h. die Liste der Elemente, aus der Sie auswählen möchten.

  • Definieren Sie Gewichte, bei denen es sich um Wahrscheinlichkeitslisten handelt, die jedem Element in der Grundgesamtheit entsprechen. Stellen Sie sicher, dass die Gewichte mit den Gesamtelementen übereinstimmen.

  • Verwenden Sie die Methode random.choices(), um die Population, das Gewicht und die Anzahl der auszuwählenden Elemente anzugeben.

  • Führen Sie den Code aus und analysieren Sie die Ergebnisse.

Methode 1: Verwenden Sie random.choices()

Verwenden Sie die Methode „random.choices()“ mit dem Parameter „Gewicht“: Diese Methode verwendet die in Python integrierte Funktion, um die Gewichtung jedes Elements explizit anzugeben.

Beispiel

import random

population = ['Red', 'Blue', 'Green']
weights = [0.6, 0.3, 0.1]

chosen = random.choices(population, weights, k=5)
print(chosen)

Ausgabe

['Red', 'Green', 'Blue', 'Blue', 'Blue']

Anleitung

Dieses Python-Skript nutzt das implizite Unregelmäßigkeitsmodul, insbesondere die Funktion random.choices(), um gewichtete unregelmäßige Bestimmungen basierend auf einer Liste aktueller Darstellungen zu generieren. Sie können aus der Liste mit dem Titel „Bevölkerung“ die folgenden Optionen auswählen: „Rot“, „Blau“ und „Grün“. Die Liste „Gewichtungen“ stellt die Wahrscheinlichkeit dar, jede Komponente in den folgenden Anteilen auszuwählen: 60 %, 30 % bzw. 10 %. Das Skript wählt zufällig fünf Elemente aus der Variablen „Population“ aus und berücksichtigt dabei die definierten „Gewichte“. Dies wird durch den Aufruf der Funktion random.choices mit den entsprechenden Parametern erreicht. Der Wert des Parameters „k“ zeigt die Anzahl der im Pool zu betrachtenden Dinge an. Danach werden die ausgewählten Elemente gedruckt.

Methode 2: Verwenden Sie numpy.random.choice()

Verwenden Sie numpy.random.choice(): Diese Methode funktioniert mit der Numpy-Bibliothek, einem leistungsstarken numerischen Operationstool, das auch die gewichtete Zufallsauswahl unterstützt.

Beispiel

import numpy as np

population = ['Red', 'Blue', 'Green']
weights = [0.6, 0.3, 0.1]

chosen = np.random.choice(population, 5, p=weights)
print(chosen)

Ausgabe

['Red' 'Red' 'Red' 'Red' 'Blue']

Anleitung

Um eine gewichtete Zufallsauswahl durchzuführen, verwendet das Skript die Numpy-Bibliothek und ruft die Funktion numpy.random.choice() auf. Die Listen „Population“ und „Gewichte“ werden auf die gleiche Weise wie der erste Code definiert. Andererseits wird bei dieser Methode der Wahrscheinlichkeitsparameter durch den Buchstaben p anstelle des Wortes „Gewicht“ dargestellt. Das Skript wählt zufällig fünf Elemente aus der Variablen „population“ aus, indem es die Funktion np.random.choice mit den Parametern population, 5 und p=weights aufruft. Die Auswahl basiert auf einer vorgegebenen Wahrscheinlichkeit. Anstatt wie im ersten Code eine Liste zu generieren, generiert dieser Code ein Numpy-Array, das alle ausgewählten Elemente enthält.

Fazit

In diesem Artikel untersuchen wir zwei wichtige Möglichkeiten, eine gewichtete Zufallsauswahl in Python mithilfe integrierter Funktionen und externer Bibliotheken zu implementieren. Mit den Methoden random.choices() und numpy.random.choice() können Sie die Wahrscheinlichkeit jedes Elements in der Liste effektiv manipulieren und erhalten so mehr Kontrolle über zufällige Entscheidungen.

Das Verständnis und die korrekte Umsetzung der gewichteten Zufallsauswahl ist für eine Vielzahl von Szenarien, von einfachen Spielen bis hin zu komplexen datenwissenschaftlichen Aufgaben, von entscheidender Bedeutung, da sie die realistische ungleichmäßige Verteilung der Wahrscheinlichkeiten im Leben widerspiegelt. Durch die Beherrschung dieser Technik fügen Sie Ihrem Python-Programmier-Toolkit ein wichtiges Werkzeug hinzu.

Denken Sie daran, dass die Funktionen random.choices() und numpy.random.choice() nicht auf gewichtete Zufallsauswahlmöglichkeiten beschränkt sind – sie bieten noch viel mehr. Fühlen Sie sich frei, in diese Bibliotheken einzutauchen, um das volle Potenzial von Python auszuschöpfen. Denken Sie daran, dass Übung der Schlüssel zur Beherrschung jedes Konzepts ist. Programmieren Sie also weiter und erkunden Sie weiter!

Das obige ist der detaillierte Inhalt vonWie implementiert man eine gewichtete Zufallsauswahl in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:tutorialspoint. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Der Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitDer Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitApr 17, 2025 am 12:14 AM

Die Flexibilität von Python spiegelt sich in Multi-Paradigm-Unterstützung und dynamischen Typsystemen wider, während eine einfache Syntax und eine reichhaltige Standardbibliothek stammt. 1. Flexibilität: Unterstützt objektorientierte, funktionale und prozedurale Programmierung und dynamische Typsysteme verbessern die Entwicklungseffizienz. 2. Benutzerfreundlichkeit: Die Grammatik liegt nahe an der natürlichen Sprache, die Standardbibliothek deckt eine breite Palette von Funktionen ab und vereinfacht den Entwicklungsprozess.

Python: Die Kraft der vielseitigen ProgrammierungPython: Die Kraft der vielseitigen ProgrammierungApr 17, 2025 am 12:09 AM

Python ist für seine Einfachheit und Kraft sehr beliebt, geeignet für alle Anforderungen von Anfängern bis hin zu fortgeschrittenen Entwicklern. Seine Vielseitigkeit spiegelt sich in: 1) leicht zu erlernen und benutzten, einfachen Syntax; 2) Reiche Bibliotheken und Frameworks wie Numpy, Pandas usw.; 3) plattformübergreifende Unterstützung, die auf einer Vielzahl von Betriebssystemen betrieben werden kann; 4) Geeignet für Skript- und Automatisierungsaufgaben zur Verbesserung der Arbeitseffizienz.

Python in 2 Stunden am Tag lernen: Ein praktischer LeitfadenPython in 2 Stunden am Tag lernen: Ein praktischer LeitfadenApr 17, 2025 am 12:05 AM

Ja, lernen Sie Python in zwei Stunden am Tag. 1. Entwickeln Sie einen angemessenen Studienplan, 2. Wählen Sie die richtigen Lernressourcen aus, 3. Konsolidieren Sie das durch die Praxis erlernte Wissen. Diese Schritte können Ihnen helfen, Python in kurzer Zeit zu meistern.

Python gegen C: Vor- und Nachteile für EntwicklerPython gegen C: Vor- und Nachteile für EntwicklerApr 17, 2025 am 12:04 AM

Python eignet sich für eine schnelle Entwicklung und Datenverarbeitung, während C für hohe Leistung und zugrunde liegende Kontrolle geeignet ist. 1) Python ist einfach zu bedienen, mit prägnanter Syntax, und eignet sich für Datenwissenschaft und Webentwicklung. 2) C hat eine hohe Leistung und eine genaue Kontrolle und wird häufig bei der Programmierung von Spielen und Systemen verwendet.

Python: zeitliches Engagement und LerntempoPython: zeitliches Engagement und LerntempoApr 17, 2025 am 12:03 AM

Die Zeit, die zum Erlernen von Python erforderlich ist, variiert von Person zu Person, hauptsächlich von früheren Programmiererfahrungen, Lernmotivation, Lernressourcen und -methoden und Lernrhythmus. Setzen Sie realistische Lernziele und lernen Sie durch praktische Projekte am besten.

Python: Automatisierung, Skript- und AufgabenverwaltungPython: Automatisierung, Skript- und AufgabenverwaltungApr 16, 2025 am 12:14 AM

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Python und Zeit: Machen Sie das Beste aus Ihrer StudienzeitPython und Zeit: Machen Sie das Beste aus Ihrer StudienzeitApr 14, 2025 am 12:02 AM

Um die Effizienz des Lernens von Python in einer begrenzten Zeit zu maximieren, können Sie Pythons DateTime-, Zeit- und Zeitplanmodule verwenden. 1. Das DateTime -Modul wird verwendet, um die Lernzeit aufzuzeichnen und zu planen. 2. Das Zeitmodul hilft, die Studie zu setzen und Zeit zu ruhen. 3. Das Zeitplanmodul arrangiert automatisch wöchentliche Lernaufgaben.

Python: Spiele, GUIs und mehrPython: Spiele, GUIs und mehrApr 13, 2025 am 12:14 AM

Python zeichnet sich in Gaming und GUI -Entwicklung aus. 1) Spielentwicklung verwendet Pygame, die Zeichnungen, Audio- und andere Funktionen bereitstellt, die für die Erstellung von 2D -Spielen geeignet sind. 2) Die GUI -Entwicklung kann Tkinter oder Pyqt auswählen. Tkinter ist einfach und einfach zu bedienen. PYQT hat reichhaltige Funktionen und ist für die berufliche Entwicklung geeignet.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft