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

Connected

अभ्यास

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

आइए देखें, क्या BMI निकालने का अलग तरीका मेमोरी बचा सकता है। याद करें, हर हीरो की height और weight एक numpy array में स्टोर है। यानी आप NumPy की बेहतरीन array indexing और broadcasting क्षमताओं का उपयोग करके कैलकुलेशन कर सकते हैं। calc_bmi_arrays नाम का एक फंक्शन बनाया गया है और bmi_arrays.py नाम की फ़ाइल में सेव है। सुविधा के लिए, यह नीचे दिखाया गया है:

def calc_bmi_arrays(sample_indices, hts, wts):

    # Gather sample heights and weights as arrays
    s_hts = hts[sample_indices]
    s_wts = wts[sample_indices]

    # Convert heights from cm to m and square with broadcasting
    s_hts_m_sqr = (s_hts / 100) ** 2

    # Calculate BMIs as an array using broadcasting
    bmis = s_wts / s_hts_m_sqr

    return bmis

ध्यान दें कि यह फंक्शन सभी ज़रूरी कैलकुलेशन arrays का उपयोग करके करता है।

आइए देखें, क्या यह नया array-आधारित तरीका आपकी मेमोरी footprint को घटाता है:

  • अपने IPython सेशन में memory_profiler पैकेज लोड करें।
  • bmi_arrays से calc_bmi_arrays इंपोर्ट करें।
  • ऊपर के स्टेप्स पूरे करने के बाद, %mprun का उपयोग करके अपने superheroes डेटा पर चल रहे calc_bmi_arrays() फंक्शन को प्रोफाइल करें। sample_indices array, hts array, और wts array आपके सेशन में लोड हैं।

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

calc_bmi_array() फंक्शन में array indexing और broadcasting वाली कोड लाइनों ने कितनी मेमोरी खाई? (अर्थात, इन चार लाइनों के लिए Increment कॉलम का कुल योग कितना है?)

निर्देश

50 XP

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