LoslegenKostenlos loslegen

Mit %mprun: Held 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 = Masse(kg) / Größe(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 aus 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

Setze die Theorie in einer unserer interaktiven Übungen in die Praxis um

Übung starten