BaşlayınÜcretsiz Başlayın

%mprun kullanımı: Kahraman BMI

Seçili bir kahraman örneklemi için vücut kitle indeksini (BMI) hesaplamak istiyorsun. BMI aşağıdaki formülle hesaplanır:

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

Rastgele seçilmiş 25.000 süper kahramandan oluşan bir örneklem, sample_indices adlı bir dizi olarak oturumuna yüklendi. Bu örneklem, heroes listesinden seçilen her süper kahramanın indeksine karşılık gelen indekslerin bir listesidir.

calc_bmi_lists adlı bir fonksiyon da oluşturuldu ve bmi_lists.py adlı dosyaya kaydedildi. Kolaylık olması için aşağıda gösteriliyor:

def calc_bmi_lists(sample_indices, hts, wts):

    # Örnek boy ve kiloları liste olarak topla
    s_hts = [hts[i] for i in sample_indices]
    s_wts = [wts[i] for i in sample_indices]

    # Boyları cm'den m'ye çevir ve liste üreteci ile karesini al
    s_hts_m_sqr = [(ht / 100) ** 2 for ht in s_hts]

    # BMI'leri liste üreteci ile hesapla
    bmis = [s_wts[i] / s_hts_m_sqr[i] for i in range(len(sample_indices))]

    return bmis

Bu fonksiyonun tüm gerekli hesaplamaları liste üreteçleri ile yaptığını fark et (bu yüzden adı calc_bmi_lists()). Bu fonksiyonu daha yakından incele ve hesaplamalarını listeler kullanarak yapmanın bellek etkisini analiz et:

  • memory_profiler paketini IPython oturumuna yükle.
  • bmi_lists modülünden calc_bmi_lists fonksiyonunu içe aktar.
  • Yukarıdaki adımları tamamladıktan sonra, süper kahraman verin üzerinde çalışan calc_bmi_lists() fonksiyonunu profil etmek için %mprun kullan. hts dizisi ve wts dizisi zaten oturumuna yüklendi.

Kodlamayı bitirdikten sonra, şu soruyu yanıtla:

calc_bmi_lists() fonksiyonundaki liste üreteci satırları ne kadar bellek tüketiyor? (yani, bu dört kod satırı için Increment sütununun toplamı nedir?)

Bu egzersiz

Verimli Python Kodu Yazmak

kursunun bir parçasıdır
Kursu Görüntüle

Uygulamalı interaktif egzersiz

İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün

Egzersizi başlat