LoslegenKostenlos loslegen

Mit %mprun: Hero 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 Auswahl von 25.000 Superhelden wurde in deine Sitzung als Array namens „ sample_indices ” geladen. Dieses Beispiel ist eine Liste von Indizes, die den Indizes der einzelnen Superhelden aus der Liste „ heroes “ entsprechen.

Eine Funktion namens „ calc_bmi_lists “ wurde auch erstellt und in einer Datei namens „ bmi_lists.py “ gespeichert. Zur Vereinfachung wird es 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 Listenkomprimierung 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-Sitzung.
  • Importiere calc_bmi_lists aus bmi_lists.
  • Wenn du die obigen Schritte erledigt hast, kannst du mit „ %mprun ” die Funktion „ calc_bmi_lists() ” profilieren, die auf deine Superhelden-Daten angewendet wird. Die Arrays „ hts “ und „ wts “ sind schon in deine Sitzung geladen worden.

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

Wie viel Speicher brauchen die Codezeilen für die Listenkomprimierung in der Funktion „ calc_bmi_lists() “? (Also, wie viel steht in der Spalte „ Increment “ für diese vier Codezeilen zusammen?)

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