1. Learn
  2. /
  3. कोर्स
  4. /
  5. Efficient Python Code लिखना

Connected

अभ्यास

%mprun का उपयोग: Hero BMI

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

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

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 का उपयोग करें. hts array और wts array पहले से आपकी सेशन में लोड हैं.

कोडिंग पूरी करने के बाद, नीचे दिए गए सवाल का जवाब दें:

calc_bmi_lists() फंक्शन में list comprehension वाली कोड लाइनों ने कितनी मेमोरी कंज़्यूम की? (अर्थात, इन चार लाइनों के लिए Increment कॉलम का कुल योग कितना है?)

निर्देश

50 XP

संभावित उत्तर