Użycie %mprun: BMI superbohaterów
Chcesz obliczyć wskaźnik masy ciała (BMI) dla wybranej próbki superbohaterów. BMI można obliczyć według poniższego wzoru:

Losowa próbka 25 000 superbohaterów została wczytana do twojej sesji jako tablica o nazwie sample_indices. To lista indeksów odpowiadających poszczególnym superbohaterom wybranym z listy heroes.
Funkcja o nazwie calc_bmi_lists została również utworzona i zapisana w pliku bmi_lists.py. Dla wygody jest wyświetlona poniżej:
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
Zwróć uwagę, że funkcja wykonuje wszystkie obliczenia przy użyciu wyrażeń listowych (stąd nazwa calc_bmi_lists()). Przyjrzyj się jej bliżej i przeanalizuj zużycie pamięci podczas obliczeń opartych na listach:
- Wczytaj pakiet
memory_profilerdo swojej sesji IPython. - Zaimportuj
calc_bmi_listszbmi_lists. - Po wykonaniu powyższych kroków użyj
%mprun, aby sprofilować funkcjęcalc_bmi_lists()na danych swoich superbohaterów. Tablicahtsi tablicawtszostały już wczytane do sesji.
Po zakończeniu pisania kodu odpowiedz na poniższe pytanie:
Ile pamięci zużywają linie kodu z wyrażeniami listowymi w funkcji calc_bmi_lists()? (tzn. jaka jest łączna suma kolumny Increment dla tych czterech linii kodu?)
To ćwiczenie jest częścią kursu
Wydajny kod w Pythonie
Interaktywne ćwiczenie praktyczne
Przekształć teorię w praktykę dzięki jednemu z naszych interaktywnych ćwiczeń
Rozpocznij ćwiczenie