पांडास सबसे लोकप्रिय पुस्तकालयों में से एक है, जब मैं इसके प्रदर्शन को तेज करने का एक आसान तरीका ढूंढ रहा था, तो मैंने फायरडक्स की खोज की और इसमें रुचि हो गई!
एक पांडा कार्यक्रम को कैसे लिखा गया है इसके आधार पर एक गंभीर प्रदर्शन समस्या का सामना करना पड़ सकता है। हालाँकि, एक डेटा वैज्ञानिक होने के नाते, मैं अपने कोड प्रदर्शन में सुधार करने के बजाय डेटा का विश्लेषण करने में अधिक से अधिक समय व्यतीत करना चाहता हूँ। इसलिए, यह बहुत अच्छा होगा यदि यह प्रक्रियाओं के क्रम को बदलने और प्रोग्राम के प्रदर्शन को स्वचालित रूप से तेज़ करने जैसा कुछ कर सके। उदाहरण के लिए, प्रक्रिया ए => प्रक्रिया बी धीमी होगी, इसलिए हम इसे प्रक्रिया बी => प्रक्रिया ए के रूप में प्रतिस्थापित करेंगे। (बेशक, परिणाम समान होने की गारंटी है।) ऐसा कहा जाता है कि डेटा वैज्ञानिक लगभग 45% खर्च करते हैं अपना समय डेटा तैयार करने में बिताया, और जब मैं इस प्रक्रिया को तेज़ करने के लिए कुछ करने के बारे में सोच रहा था, तो मुझे फ़ायरडक्स नामक एक मॉड्यूल मिला।
फ़ायरडक्स दस्तावेज़ से, ऐसा लगता है कि यह केवल लिनक्स प्लेटफ़ॉर्म के लिए समर्थित है। चूँकि मैं अपनी मुख्य मशीन पर विंडोज़ का उपयोग करता हूँ, इसलिए मैं इसे WSL2 (लिनक्स के लिए विंडोज़ सबसिस्टम) से आज़माना चाहूँगा, एक ऐसा वातावरण जो विंडोज़ पर लिनक्स चला सकता है।
मैंने जिस वातावरण का प्रयास किया वह इस प्रकार है।
WSL को निम्नलिखित Microsoft दस्तावेज़ की सहायता से स्थापित किया गया था; लिनक्स वितरण Ubuntu 22.04.1 LTS है।
फिर वास्तव में फायरडक्स स्थापित करें। हालाँकि, इसे स्थापित करना बहुत आसान है।
पिप इंस्टॉल फ़ायरडक्स
फायरडक्स को स्थापित करने में कुछ मिनट लगेंगे (पाइरो, पांडा और अन्य पुस्तकालयों के साथ)।
मैंने नीचे दिए गए कोड को निष्पादित करने का प्रयास किया, लोडिंग गति इतनी तेज़ थी, पांडा को 4 सेकंड लगे और फायरडक्स को केवल 74.5 एनएस लगे।
# 1. analysis based on time period and creative duration # convert timestamp to date/time object df['timestamp_converted'] = pd.to_datetime(df['timestamp'], unit='s ') # define time period def get_part_of_day(hour): if 5इन सभी डेटा प्रीप्रोसेसिंग और विश्लेषण में पांडा में लगभग 8 सेकंड का समय लगा, जबकि फायरडक्स का उपयोग करते समय इसे 4 सेकंड के भीतर पूरा किया जा सकता था। लगभग 2 गुना गति प्राप्त की जा सकती है।
बेहतर प्रदर्शन
पांडा का उपयोग करने के बारे में सबसे तनावपूर्ण चीजों में से एक बड़े डेटा सेट को लोड करते समय इंतजार करना है, और फिर मुझे ग्रुपबी जैसे जटिल ऑपरेशन के लिए इंतजार करना पड़ता है। दूसरी ओर, चूंकि फायरडक्स आलसी मूल्यांकन करता है, लोडिंग में बिल्कुल भी समय नहीं लगता है, इसलिए प्रसंस्करण वहीं किया जाता है जहां इसकी आवश्यकता होती है, और मुझे लगा कि कुल प्रतीक्षा समय में बड़ी कमी के साथ यह बहुत महत्वपूर्ण था।
जहां तक अन्य प्रदर्शन का सवाल है, ऐसा लगता है कि पांडा की तुलना में 16 गुना अधिक तेजी से हासिल किया गया है, जैसा कि संगठन द्वारा आधिकारिक तौर पर घोषणा की गई है। (मैं अगली बार विभिन्न प्रतिस्पर्धी पुस्तकालयों के साथ प्रदर्शन की तुलना करूंगा।)
शून्य सीखने की लागत
बिना कुछ भी सोचे सटीक पांडा नोटेशन का पालन करने की क्षमता एक बहुत बड़ा लाभ है। फायरडक्स के अलावा, अन्य डेटा फ़्रेम एक्सेलेरेशन लाइब्रेरी भी हैं, लेकिन उन्हें सीखना बहुत महंगा है और भूलना बहुत आसान है।
उदाहरण के लिए, यदि आप ध्रुवों वाले कॉलम जोड़ना चाहते हैं, तो आपको कुछ इस तरह लिखना होगा।
# pandas df["new_col"] = df["A"] 1 # polars df = df.with_columns((pl.col("A") 1).alias("new_col"))मौजूदा कोड को बदलने की लगभग कोई आवश्यकता नहीं है
मेरे पास कई ईटीएल और अन्य परियोजनाएं हैं जो पांडा का उपयोग करती हैं, और आयात विवरण को फायरडक्स के साथ स्थापित और प्रतिस्थापित करके प्रदर्शन में सुधार देखना अच्छा होगा।
यदि आप इसे और जोड़ना चाहते हैं, तो बेझिझक नीचे टिप्पणी करें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3