Använda %mprun: Hjälte-BMI
Du vill beräkna kroppsmasseindex (BMI) för ett urval av hjältar. BMI beräknas enligt formeln nedan:

Ett slumpmässigt urval på 25 000 superhjältar har laddats in i din session som en array med namnet sample_indices. Det här urvalet är en lista med index som motsvarar varje superhjältes index i listan heroes.
En funktion med namnet calc_bmi_lists har också skapats och sparats i en fil med namnet bmi_lists.py. Den visas nedan för din bekvämlighet:
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
Observera att funktionen utför alla beräkningar med hjälp av listomfattningar (därav namnet calc_bmi_lists()). Utforska funktionen närmare och analysera minnesavtrycket för dina beräkningar när du använder listor:
- Ladda in paketet
memory_profileri din IPython-session. - Importera
calc_bmi_listsfrånbmi_lists. - När du har genomfört stegen ovan, använd
%mprunför att profilera funktionencalc_bmi_lists()på dina superhjältedata. Arrayernahtsochwtshar redan laddats in i din session.
När du är klar med koden, svara på följande fråga:
Hur mycket minne förbrukar raderna med listomfattningar i funktionen calc_bmi_lists()? (Det vill säga, vad är den totala summan av kolumnen Increment för dessa fyra kodrader?)
Den här övningen är en del av kursen
Att skriva effektiv Python-kod
Interaktiv övning med praktiskt arbete
Gör teori till handling med en av våra interaktiva övningar
Starta övningen