Folosirea %mprun: IMC-ul eroilor
Vrei să calculezi indicele de masă corporală (IMC) pentru un eșantion selectat de eroi. IMC-ul poate fi calculat folosind formula de mai jos:

Un eșantion aleatoriu de 25.000 de supereroi a fost încărcat în sesiunea ta sub forma unui array numit sample_indices. Acest eșantion este o listă de indici care corespund indexului fiecărui supererou selectat din lista heroes.
O funcție numită calc_bmi_lists a fost creată și salvată într-un fișier numit bmi_lists.py. Pentru ușurință, o găsești afișată mai jos:
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
Observă că această funcție efectuează toate calculele necesare folosind list comprehension (de aici și numele calc_bmi_lists()). Explorează mai în detaliu această funcție și analizează amprenta de memorie pentru calculele efectuate cu liste:
- Încarcă pachetul
memory_profilerîn sesiunea ta IPython. - Importă
calc_bmi_listsdinbmi_lists. - După ce ai finalizat pașii de mai sus, folosește
%mprunpentru a profila funcțiacalc_bmi_lists()aplicată pe datele supereroilor tăi. Arrayulhtsși arrayulwtsau fost deja încărcate în sesiunea ta.
După ce ai terminat de scris codul, răspunde la următoarea întrebare:
Câtă memorie consumă liniile de cod cu list comprehension din funcția calc_bmi_lists()? (adică, care este suma totală a coloanei Increment pentru aceste patru linii de cod?)
Acest exercițiu face parte din cursul
Scriere eficientă a codului Python
Exercițiu interactiv practic
Transformă teoria în practică cu unul dintre exercițiile noastre interactive
Începe exercițiul