पांडा के प्रदर्शन की तुलना np.vectorize बनाम लागू होती है
यह देखा गया है कि np.vectorize() df की तुलना में काफी तेज हो सकता है। पांडा डेटाफ़्रेम में मौजूदा कॉलम के आधार पर एक नया कॉलम बनाते समय() लागू करें। देखा गया प्रदर्शन अंतर इन दो तरीकों द्वारा नियोजित अंतर्निहित तंत्र से उत्पन्न होता है।
df.apply() बनाम Python-Level Loops
df.apply() अनिवार्य रूप से बनाता है एक पायथन-स्तरीय लूप जो डेटाफ़्रेम की प्रत्येक पंक्ति पर पुनरावृत्त होता है। जैसा कि प्रदान किए गए बेंचमार्क में दिखाया गया है, पायथन-स्तरीय लूप जैसे सूची समझ और मानचित्र सभी वास्तविक वेक्टरकृत गणनाओं की तुलना में अपेक्षाकृत धीमे हैं।
np.vectorize() बनाम df.apply()
np.vectorize() एक उपयोगकर्ता-परिभाषित फ़ंक्शन को एक सार्वभौमिक फ़ंक्शन (ufunc) में परिवर्तित करता है। Ufuncs अत्यधिक अनुकूलित हैं और C-आधारित कोड और अनुकूलित एल्गोरिदम का लाभ उठाते हुए, NumPy सरणियों पर तत्व-वार संचालन कर सकते हैं। यह df.apply() के विपरीत है, जो पांडा सीरीज ऑब्जेक्ट्स पर काम करता है और अतिरिक्त ओवरहेड खर्च करता है।
ट्रू वेक्टराइजेशन: इष्टतम प्रदर्शन
वास्तव में कुशल कॉलम निर्माण के लिए , NumPy के भीतर वेक्टरकृत गणनाओं की अत्यधिक अनुशंसा की जाती है। numpy.where और df["A"] / df["B"] के साथ प्रत्यक्ष तत्व-वार विभाजन जैसे ऑपरेशन बेहद तेज़ हैं और लूप से जुड़े ओवरहेड्स से बचते हैं।
और भी अधिक दक्षता के लिए, नंबा का उपयोग करके लूप को और अधिक अनुकूलित करना संभव है, एक कंपाइलर जो पायथन फ़ंक्शंस को अनुकूलित सी कोड में अनुवाद करता है। नुम्बा निष्पादन समय को माइक्रोसेकंड तक कम कर सकता है, जो df.apply() और np.vectorize() दोनों से काफी बेहतर प्रदर्शन कर सकता है।
निष्कर्षजबकि np.vectorize() पेशकश कर सकता है df.apply() पर कुछ सुधार, यह NumPy में वेक्टरकृत गणनाओं का सही विकल्प नहीं है। अधिकतम प्रदर्शन प्राप्त करने के लिए, पांडा डेटाफ़्रेम में नए कॉलम के निर्माण के लिए NumPy के भीतर Numba अनुकूलन या प्रत्यक्ष वेक्टरकृत संचालन का उपयोग करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3