%mprun का उपयोग: Hero BMI
आप चुने हुए हीरोज़ के एक सैंपल के लिए बॉडी मास इंडेक्स (BMI) निकालना चाहते हैं. BMI नीचे दिए गए फॉर्मूला से निकाला जा सकता है:

25,000 सुपरहीरोज़ का एक रैंडम सैंपल आपकी सेशन में sample_indices नाम के एक array के रूप में लोड किया गया है. यह सैंपल उन 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()). इस फंक्शन को गहराई से देखें और lists का उपयोग करके कैलकुलेशन करने पर मेमोरी फ़ुटप्रिंट का विश्लेषण करें:
- अपनी IPython सेशन में
memory_profilerपैकेज लोड करें. bmi_listsसेcalc_bmi_listsइम्पोर्ट करें.- ऊपर दिए स्टेप्स पूरे करने के बाद, अपने सुपरहीरोज़ डेटा पर चल रहे
calc_bmi_lists()फंक्शन को प्रोफाइल करने के लिए%mprunका उपयोग करें.htsarray औरwtsarray पहले से आपकी सेशन में लोड हैं.
कोडिंग पूरी करने के बाद, नीचे दिए गए सवाल का जवाब दें:
calc_bmi_lists() फंक्शन में list comprehension वाली कोड लाइनों ने कितनी मेमोरी कंज़्यूम की? (अर्थात, इन चार लाइनों के लिए Increment कॉलम का कुल योग कितना है?)
यह अभ्यास पाठ्यक्रम का हिस्सा है
Efficient Python Code लिखना
इंटरैक्टिव व्यावहारिक अभ्यास
हमारे इंटरैक्टिव अभ्यासों में से किसी एक के साथ सिद्धांत को व्यवहार में बदलें
अभ्यास शुरू करें