Menggunakan %mprun: BMI Pahlawan Super
Anda ingin menghitung body mass index (BMI) untuk sampel pilihan para pahlawan super. BMI dapat dihitung dengan rumus berikut:

Sampel acak berisi 25.000 pahlawan super telah dimuat ke dalam sesi Anda sebagai sebuah array bernama sample_indices. Sampel ini adalah daftar indeks yang sesuai dengan indeks masing-masing pahlawan super yang dipilih dari daftar heroes.
Sebuah fungsi bernama calc_bmi_lists juga telah dibuat dan disimpan ke berkas berjudul bmi_lists.py. Untuk kemudahan, fungsinya ditampilkan di bawah ini:
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
Perhatikan bahwa fungsi ini melakukan semua perhitungan yang diperlukan menggunakan list comprehension (itulah sebabnya dinamai calc_bmi_lists()). Telusuri lebih dalam fungsi ini dan analisis jejak memori saat melakukan perhitungan menggunakan list:
- Muat paket
memory_profilerke dalam sesi IPython Anda. - Impor
calc_bmi_listsdaribmi_lists. - Setelah Anda menyelesaikan langkah-langkah di atas, gunakan
%mprununtuk memprofilkan fungsicalc_bmi_lists()pada data pahlawan super Anda. Arrayhtsdanwtssudah dimuat ke dalam sesi Anda.
Setelah selesai menulis kode, jawab pertanyaan berikut:
Berapa banyak memori yang dikonsumsi oleh baris-baris kode list comprehension dalam fungsi calc_bmi_lists()? (yakni, berapa total penjumlahan kolom Increment untuk keempat baris kode tersebut?)
Latihan ini adalah bagian dari kursus
Menulis Kode Python yang Efisien
Latihan interaktif praktis
Ubah teori menjadi tindakan dengan salah satu latihan interaktif kami.
Mulai berolahraga