%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:

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_profilerpaketini IPython oturumuna yükle.bmi_listsmodülündencalc_bmi_listsfonksiyonunu 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%mprunkullan.htsdizisi vewtsdizisi 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ırUygulamalı interaktif egzersiz
İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün
Egzersizi başlat