• Erledigen Sie die Anwendungssicherheit auf die richtige Weise! Erkennen, schützen, überwachen, beschleunigen und mehr…
  • Mittelwert, Median und Modus sind grundlegende Themen der Statistik. Sie können sie ganz einfach in Python berechnen, mit und ohne Verwendung externer Bibliotheken.

    Diese drei sind die wichtigsten Maßnahmen von zentrale Tendenz. Die zentrale Tendenz lässt uns die „normalen“ oder „durchschnittlichen“ Werte eines Datensatzes erkennen. Wenn du gerade erst anfängst mit Datenwissenschaft, dies ist das richtige Tutorial für Sie.

    Mittelwert, Median, Modus der drei Messungen der zentralen Tendenz

    Am Ende dieses Tutorials werden Sie:

    • Verstehen Sie das Konzept von Mittelwert, Median und Modus
    • Sie können Ihre eigenen Mittelwert-, Median- und Modusfunktionen in Python erstellen
    • Nutzen Sie Pythons Statistiken Modul, um die Verwendung dieser Messungen schnell zu starten

    Wenn Sie eine herunterladbare Version der folgenden Übungen wünschen, können Sie sich gerne die GitHub-Repository.

    Kommen wir zu den verschiedenen Methoden zur Berechnung von Mittelwert, Median und Modus.

    Calculating the  Mean in Python

    Das bedeuten oder arithmetisches Mittel ist das am häufigsten verwendete Maß für die zentrale Tendenz.

    Denken Sie daran, dass die zentrale Tendenz ein typischer Wert eines Datensatzes ist.

    Ein Dataset ist eine Sammlung von Daten, daher kann ein Dataset in Python eine der folgenden integrierten Datenstrukturen sein:

    • Listen, Tupel und Mengen: eine Sammlung von Objekten
    • Streicher: eine Sammlung von Charakteren
    • Wörterbuch: eine Sammlung von Schlüssel-Wert-Paaren

    Hinweis: Obwohl es in Python andere Datenstrukturen gibt, wie zum Beispiel Warteschlangen or Stapeln, verwenden wir nur die integrierten.

    Wir können den Mittelwert berechnen, indem wir alle Werte eines Datensatzes addieren und das Ergebnis durch die Anzahl der Werte dividieren. Zum Beispiel, wenn wir die folgende Liste von Zahlen haben:

    [1, 2, 3, 4, 5, 6]

    Der Mittelwert oder Durchschnitt wäre  3.5 denn die Summe der Liste ist 21 und seine Länge ist 6. Einundzwanzig geteilt durch sechs ist 3.5. Sie können diese Berechnung mit der folgenden Berechnung durchführen:

    (1 + 2 + 3 + 4 + 5 + 6) / 6 = 21

    In diesem Tutorial verwenden wir die Spieler einer Basketballmannschaft als Beispieldaten.

    Erstellen einer benutzerdefinierten Mittelwertfunktion

    Beginnen wir mit der Berechnung des durchschnittlichen (mittleren) Alters der Spieler in einer Basketballmannschaft. Der Name des Teams wird „Pythonic Machines“ sein.

    pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]
    
    def mean(dataset):
        return sum(dataset) / len(dataset)
    
    print(mean(pythonic_machine_ages))

    Diesen Code aufschlüsseln:

    • Die „pythonic_machine_ages“ ist eine Liste mit dem Alter von Basketballspielern
    • Wir definieren a bedeuten() Funktion, die die Summe des gegebenen Datensatzes geteilt durch seine Länge zurückgibt
      • Das  Summe() -Funktion gibt (ironischerweise) die Gesamtsumme der Werte einer iterierbaren, in diesem Fall einer Liste, zurück. Versuchen Sie, das Dataset als Argument zu übergeben, es wird zurückgegeben 211
      • Das  len () Die Funktion gibt die Länge eines Iterables zurück, wenn Sie den Datensatz an ihn übergeben, erhalten Sie 8
    • Wir geben das Basketballteam altern an die bedeuten() Funktion und drucken Sie das Ergebnis aus.

    Wenn Sie die Ausgabe überprüfen, erhalten Sie:

    26.375
    # Because 211 / 8 = 26.375

    Diese Ausgabe repräsentiert das Durchschnittsalter der Basketballspieler. Beachten Sie, dass die Zahl nicht im Datensatz erscheint, sondern das Alter der meisten Spieler genau beschreibt.

    Verwenden von mean() aus dem Python-Statistikmodul

    Das Berechnen von Maßen der zentralen Tendenz ist für die meisten Entwickler eine gängige Operation. Das ist, weil Pythons Statistiken Modul bietet verschiedene Funktionen zu deren Berechnung sowie weitere grundlegende Statistikthemen.

    Da es Teil der . ist Python-Standardbibliothek Sie müssen kein externes Paket mit installieren PIP.

    So verwenden Sie dieses Modul:

    from statistics import mean
    
    pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]
    
    print(mean(pythonic_machine_ages))

    Im obigen Code müssen Sie nur die . importieren bedeuten() Funktion von der Statistiken -Modul und übergeben Sie ihm das Dataset als Argument. Dies gibt das gleiche Ergebnis zurück wie die benutzerdefinierte Funktion, die wir im vorherigen Abschnitt definiert haben:

    26.375

    Jetzt haben Sie kristallklar das Konzept von bedeuten lass uns weitermachen mit dem mittlere Messung.

    Finding the Median in Python

    Das mittlere ist mittlerer Wert eines sortierten Datensatzes. Es wird – wieder – verwendet, um einen „typischen“ Wert eines bestimmten Bevölkerung.

    In der Programmierung können wir den Median als den Wert definieren, der eine Sequenz in zwei Teile teilt – die untere Hälfte und die obere Hälfte –.

    Um den Median zu berechnen, müssen wir zunächst den Datensatz sortieren. Wir könnten das mit machen Sortieralgorithmen oder mit der eingebauten Funktion sortiert (). Der zweite Schritt besteht darin, zu bestimmen, ob die Datensatzlänge ungerade oder gerade ist. Abhängig davon einige der folgenden Prozesse:

    • Seltsam: Der Median ist der Mittelwert des Datensatzes
    • Sogar: Der Median ist die Summe der beiden Mittelwerte geteilt durch zwei

    Fahren wir mit unserem Basketballteam-Dataset fort und berechnen wir die mittlere Größe der Spieler in Zentimetern:

    [181, 187, 196, 196, 198,  203, 207, 211, 215]
    # Since the dataset is odd, we select the middle value
    median = 198

    Wie Sie sehen, können wir, da die Datensatzlänge ungerade ist, den Mittelwert als Median verwenden. Was würde jedoch passieren, wenn ein Spieler gerade in den Ruhestand ging?

    Wir müssten den Median aus den beiden mittleren Werten des Datensatzes berechnen

    [181, 187, 196, 198, 203, 207, 211, 215] 
    # We select the two middle values, and divide them by 2
    median = (198 + 203) / 2
    median = 200.5

    Erstellen einer benutzerdefinierten Medianfunktion

    Lassen Sie uns das obige Konzept in eine Python-Funktion implementieren.

    Denken Sie an die drei Schritte, die wir ausführen müssen, um den Median eines Datensatzes zu erhalten:

    • Sortieren Sie den Datensatz: Wir können dies mit der sortiert () Funktion
    • Bestimmen Sie, ob es ungerade oder gerade ist: Wir können dies tun, indem wir die Länge des Datensatzes ermitteln und den Modulo-Operator (%) verwenden.
    • Geben Sie den Median für jeden Fall zurück:
      • Seltsam: Den mittleren Wert zurückgeben
      • Sogar: Geben Sie den Durchschnitt der beiden mittleren Werte zurück

    Das würde folgende Funktion ergeben:

    pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215]
    after_retirement = [181, 187, 196, 198, 203, 207, 211, 215]
    
    def median(dataset):
        data = sorted(dataset)
        index = len(data) // 2
        
        # If the dataset is odd  
        if len(dataset) % 2 != 0:
            return data[index]
        
        # If the dataset is even
        return (data[index - 1] + data[index]) / 2

    Drucken des Ergebnisses unserer Datensätze:

    print(median(pythonic_machines_heights))
    print(median(after_retirement))

    Ausgang:

    198
    200.5

    Beachten Sie, wie wir a . erstellen Datum Variable, die zu Beginn der Funktion auf die sortierte Datenbank zeigt. Obwohl die obigen Listen sortiert sind, möchten wir eine wiederverwendbare Funktion erstellen und daher den Datensatz bei jedem Aufruf der Funktion sortieren.

    Das Index speichert den mittleren Wert – oder den oberen mittleren Wert – des Datensatzes, indem Sie die Ganzzahldivision Operator. Wenn wir zum Beispiel die Liste „pythonic_machine_heights“ übergeben würden, hätte sie den Wert 4.

    Denken Sie daran, dass Sequenzindizes in Python bei Null beginnen, weil wir den mittleren Index einer Liste mit einer ganzzahligen Division zurückgeben können.

    Dann prüfen wir, ob die Länge des Datensatzes ungerade ist, indem wir das Ergebnis der Modulo-Operation mit einem beliebigen Wert ungleich Null vergleichen. Wenn die Bedingung wahr ist, geben wir das mittlere Element zum Beispiel mit der Liste „pythonic_machine_heights“ zurück:

    >>> pythonic_machine_heights[4]
    # 198

    Auf der anderen Seite, wenn der Datensatz gerade ist, geben wir die Summe der Mittelwerte geteilt durch zwei zurück. Beachten Sie, dass Daten[index -1] gibt uns den unteren Mittelpunkt des Datensatzes, während Daten[index] liefert uns den oberen Mittelpunkt.

    Verwenden von median() aus dem Python-Statistikmodul

    Dieser Weg ist viel einfacher, da wir eine bereits vorhandene Funktion aus dem Statistikmodul verwenden.

    Persönlich, wenn etwas bereits für mich definiert ist, würde ich es wegen des DRY-Prinzips — Wiederholen Sie sich nicht — verwenden (in diesem Fall nicht den Code anderer wiederholen).

    Sie können den Median der vorherigen Datensätze mit dem folgenden Code berechnen:

    from statistics import median
    
    pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215]
    after_retirement = [181, 187, 196, 198, 203, 207, 211, 215]
    
    print(median(pythonic_machines_heights))
    print(median(after_retirement))

    Ausgang:

    198
    200.5

    Computing the Mode in Python

    Das Modus ist der häufigste Wert im Datensatz. Wir können es uns als die „populäre“ Gruppe einer Schule vorstellen, die für alle Schüler einen Standard darstellen kann.

    Ein Beispiel für einen Modus könnte der tägliche Verkauf eines Tech-Stores sein. Der Modus dieses Datensatzes wäre das meistverkaufte Produkt eines bestimmten Tages.

    ['laptop', 'desktop', 'smartphone', 'laptop', 'laptop', 'headphones']

    Wie Sie erkennen können, ist der Modus des obigen Datensatzes „Laptop“, da er der häufigste Wert in der Liste war.

    Das Tolle am Modus ist, dass der Datensatz nicht numerisch sein darf. Zum Beispiel können wir mit Strings arbeiten.

    Analysieren wir die Verkäufe eines anderen Tages:

    ['mouse', 'camera', 'headphones', 'usb', 'headphones', 'mouse']

    Der obige Datensatz hat zwei Modi: "Maus" und "Kopfhörer", da beide eine Frequenz von zwei haben. Das bedeutet, es ist ein multimodal Datensatz.

    Was ist, wenn wir den Modus in einem Datensatz wie dem folgenden nicht finden können?

    ['usb', 'camera', 'smartphone', 'laptop', 'TV']

    Dies nennt man a gleichmäßige Verteilung, im Grunde bedeutet dies, dass im Datensatz kein Modus vorhanden ist.

    Jetzt haben Sie einen schnellen Überblick über das Konzept des Modus, lassen Sie uns ihn in Python berechnen.

    Erstellen einer benutzerdefinierten Modusfunktion

    Wir können uns die Häufigkeit eines Werts als Schlüssel-Wert-Paar vorstellen, mit anderen Worten, a Python-Wörterbuch.

    Um die Basketball-Analogie zusammenzufassen, können wir zwei Datensätze verwenden, um mit den Punkten pro Spiel und dem Sneaker-Sponsoring einiger Spieler zu arbeiten.

    Um den Modus zu finden, müssen wir zuerst ein Häufigkeitswörterbuch mit jedem der im Datensatz vorhandenen Werte erstellen, dann die maximale Häufigkeit ermitteln und alle Elemente mit dieser Häufigkeit zurückgeben.

    Lassen Sie uns dies in Code übersetzen:

    points_per_game = [3, 15, 23, 42, 30, 10, 10, 12]
    sponsorship = ['nike', 'adidas', 'nike', 'jordan',
                   'jordan', 'rebook', 'under-armour', 'adidas']
    
    def mode(dataset):
        frequency = {}
    
        for value in dataset:
            frequency[value] = frequency.get(value, 0) + 1
    
        most_frequent = max(frequency.values())
    
        modes = [key for key, value in frequency.items()
                          if value == most_frequent]
    
        return modes

    Überprüfung des Ergebnisses durch Übergabe der beiden Listen als Argumente:

    print(mode(points_per_game))
    print(mode(sponsorship))

    Ausgang:

    [10]
    ['nike', 'adidas', 'jordan']

    Wie Sie sehen können, gab uns die erste print-Anweisung einen einzigen Modus, während die zweite mehrere Modi zurückgab.

    Den obigen Code genauer erklären:

    • Wir erklären a Frequenz Wörterbuch
    • Wir iterieren über den Datensatz, um a . zu erstellen Histogramm — der statistische Begriff für eine Reihe von Zählern (oder Häufigkeiten) —
      • Wenn der Schlüssel im Wörterbuch gefunden wird, wird dem Wert eins hinzugefügt
      • Wenn es nicht gefunden wird, erstellen wir ein Schlüssel-Wert-Paar mit dem Wert Eins
    • Das  am häufigsten Variable speichert – ironischerweise – den größten Wert (nicht den Schlüssel) des Frequenzwörterbuchs
    • Wir geben die zurück Modi Variable, die aus allen Schlüsseln im . besteht Frequenz Wörterbuch mit der höchsten Häufigkeit.

    Beachten Sie, wie wichtig die Benennung von Variablen ist, um lesbaren Code zu schreiben.

    Verwenden von mode() und multimode() aus dem Python-Statistikmodul

    Auch hier bietet uns das Statistikmodul eine schnelle Möglichkeit, grundlegende Statistikoperationen durchzuführen.

    Wir können zwei Funktionen verwenden: Modus() . Multimode ().

    from statistics import mode, multimode
    
    points_per_game = [3, 15, 23, 42, 30, 10, 10, 12]
    sponsorship = ['nike', 'adidas', 'nike', 'jordan',
                   'jordan', 'rebook', 'under-armour', 'adidas']

    Der obige Code importiert beide Funktionen und definiert die Datensätze, mit denen wir gearbeitet haben.

    Hier kommt der kleine Unterschied: Die Modus() Funktion gibt den ersten Modus zurück, auf den sie stößt, während Multimode () gibt eine Liste mit den häufigsten Werten im Dataset zurück.

    Folglich können wir sagen, dass die von uns definierte benutzerdefinierte Funktion tatsächlich a . ist Multimode () Funktion.
    print(mode(points_per_game))
    print(mode(sponsorship))
    

    Ausgang:

    10
    nike

    Hinweis: In Python 3.8 oder höher gibt die Funktion mode() den ersten gefundenen Modus zurück. Wenn Sie eine ältere Version haben, erhalten Sie eine StatistikFehler.

    Verwendung der Multimode () Funktion:

    print(multimode(points_per_game))
    print(multimode(sponsorship))

    Ausgang:

    [10]
    ['nike', 'adidas', 'jordan']

    Um zusammenzufassen

    Herzliche Glückwünsche! Wenn Sie bis jetzt gefolgt sind, haben Sie gelernt, wie man Mittelwert, Median und Modus berechnet, die wichtigsten zentralen Tendenzmessungen.

    Obwohl Sie Ihre benutzerdefinierten Funktionen definieren können, um Mittelwert, Median und Modus zu ermitteln, wird empfohlen, das Statistikmodul zu verwenden, da es Teil der Standardbibliothek ist und Sie nichts installieren müssen, um es verwenden zu können.

    Lesen Sie als Nächstes eine freundliche Einführung zu Datenanalyse in Python.