LoslegenKostenlos loslegen

%mprun: Superhelden BMI

Du möchtest den Body-Mass-Index (BMI) für eine ausgewählte Gruppe von Helden berechnen. Der BMI kann mit der folgenden Formel berechnet werden:

BMI = mass(kg) / height(m)^2

Eine zufällige Stichprobe von 25.000 Superhelden wurde in deine Session als Array namens sample_indices geladen. Diese Stichprobe ist eine Liste von Indizes, die den Indizes der einzelnen Superhelden aus der Liste heroes entsprechen.

Zudem wurde eine Funktion namens calc_bmi_lists erstellt und in einer Datei bmi_lists.py gespeichert. Zur Vereinfachung wird diese unten angezeigt:

def calc_bmi_lists(sample_indices, hts, wts):

    # Gather sample heights and weights as lists
    s_hts = [hts[i] for i in sample_indices]
    s_wts = [wts[i] for i in sample_indices]

    # Convert heights from cm to m and square with list comprehension
    s_hts_m_sqr = [(ht / 100) ** 2 for ht in s_hts]

    # Calculate BMIs as a list with list comprehension
    bmis = [s_wts[i] / s_hts_m_sqr[i] for i in range(len(sample_indices))]

    return bmis

Beachte, dass diese Funktion alle notwendigen Berechnungen mit Hilfe von Listenabstraktion durchführt (daher der Name calc_bmi_lists()). Schau dir diese Funktion genauer an und überprüfe, wie viel Speicherplatz deine Berechnungen mit Listen brauchen:

  • Lade das Paket memory_profiler in deine IPython-Session.
  • Importiere calc_bmi_lists aus bmi_lists.
  • Wenn du die obigen Schritte erledigt hast, kannst du mit %mprun die Funktion calc_bmi_lists() analysieren, die auf deine Superhelden-Daten angewendet wird. Die Arrays hts und wts wurden bereits in deine Session geladen.

Wenn du mit dem Programmieren fertig bist, beantworte bitte die folgende Frage:

Wie viel Speicher benötigen die Codezeilen für die Listenabstraktion in der Funktion calc_bmi_lists()? (Was ist die Summer der Spalte Increment für diese vier Codezeilen?)

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Interaktive Übung

In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.

Übung starten