MulaiMulai sekarang secara gratis

Menggunakan %mprun: BMI Pahlawan Super

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

BMI = mass(kg) / height(m)^2

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_profiler ke dalam sesi IPython Anda.
  • Impor calc_bmi_lists dari bmi_lists.
  • Setelah Anda menyelesaikan langkah-langkah di atas, gunakan %mprun untuk memprofilkan fungsi calc_bmi_lists() pada data pahlawan super Anda. Array hts dan wts sudah 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

Lihat Kursus

Latihan interaktif praktis

Ubah teori menjadi tindakan dengan salah satu latihan interaktif kami.

Mulai berolahraga