Erste SchritteKostenlos loslegen

Mit %mprun: Held BMI

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

BMI = Masse(kg) / Höhe(m)^2

Eine zufällige Auswahl von 25.000 Superhelden wurde als Array namens sample_indices in deine Sitzung geladen. Diese Probe ist eine Liste von Indizes, die dem Index eines jeden Superhelden entspricht, der aus der Liste heroes ausgewählt wurde.

Eine Funktion mit dem Namen calc_bmi_lists wurde ebenfalls erstellt und in einer Datei mit dem Namen bmi_lists.py gespeichert. Der Einfachheit halber wird sie 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 des Listenverständnisses durchführt (daher der Name calc_bmi_lists()). Schau dir diese Funktion genauer an und analysiere den Speicherbedarf für deine Berechnungen mit Listen:

  • Lade das Paket memory_profiler in deine IPython-Sitzung.
  • Importiere calc_bmi_lists von bmi_lists.
  • Wenn du die oben genannten Schritte abgeschlossen hast, kannst du mit %mprun ein Profil für die Funktion calc_bmi_lists() erstellen, die mit den Daten deiner Superhelden arbeitet. Das Array hts und das Array wts wurden bereits in deine Sitzung geladen.

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

Wie viel Speicherplatz verbrauchen die Codezeilen zum Listenverständnis in der Funktion calc_bmi_lists()? (d.h., wie hoch ist die Gesamtsumme der Spalte Increment für diese vier Codezeilen?)

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Interaktive Übung zum Anfassen

Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um

Beginnen Sie mit dem Training