Використання %mprun: ІМТ героїв
Ви хочете обчислити індекс маси тіла (ІМТ, англ. BMI) для вибірки героїв. ІМТ обчислюється за формулою нижче:

Випадкова вибірка з 25 000 супергероїв завантажена у вашу сесію як масив sample_indices. Ця вибірка — це список індексів, що відповідають індексу кожного супергероя у списку heroes.
Функцію calc_bmi_lists також створено та збережено у файлі bmi_lists.py. Для зручності її наведено нижче:
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
Зверніть увагу, що ця функція виконує всі потрібні обчислення за допомогою list comprehension (звідси й назва calc_bmi_lists()). Розберіть цю функцію детальніше та проаналізуйте споживання памʼяті під час обчислень за допомогою списків:
- Завантажте пакет
memory_profilerу вашу сесію IPython. - Імпортуйте
calc_bmi_listsзbmi_lists. - Після виконання наведених кроків скористайтеся
%mprun, щоб профілювати функціюcalc_bmi_lists()на ваших даних про супергероїв. Масивиhtsтаwtsвже завантажено у вашу сесію.
Після того як закінчите писати код, дайте відповідь на запитання:
Скільки памʼяті споживають рядки з list comprehension у функції calc_bmi_lists()? (тобто яка загальна сума значень у стовпці Increment для цих чотирьох рядків коду?)
Ця вправа є частиною курсу
Ефективне написання коду Python
Практична інтерактивна вправа
Перетворіть теорію на практику за допомогою однієї з наших інтерактивних вправ
Почати вправу