"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फायरडक्स: शून्य शिक्षण लागत के साथ पांडा से भी बेहतर प्रदर्शन प्राप्त करें!

फायरडक्स: शून्य शिक्षण लागत के साथ पांडा से भी बेहतर प्रदर्शन प्राप्त करें!

2024-11-06 को प्रकाशित
ब्राउज़ करें:436

पांडास सबसे लोकप्रिय पुस्तकालयों में से एक है, जब मैं इसके प्रदर्शन को तेज करने का एक आसान तरीका ढूंढ रहा था, तो मैंने फायरडक्स की खोज की और इसमें रुचि हो गई!

पांडा के साथ तुलना: फायरडक्स क्यों?

एक पांडा कार्यक्रम को कैसे लिखा गया है इसके आधार पर एक गंभीर प्रदर्शन समस्या का सामना करना पड़ सकता है। हालाँकि, एक डेटा वैज्ञानिक होने के नाते, मैं अपने कोड प्रदर्शन में सुधार करने के बजाय डेटा का विश्लेषण करने में अधिक से अधिक समय व्यतीत करना चाहता हूँ। इसलिए, यह बहुत अच्छा होगा यदि यह प्रक्रियाओं के क्रम को बदलने और प्रोग्राम के प्रदर्शन को स्वचालित रूप से तेज़ करने जैसा कुछ कर सके। उदाहरण के लिए, प्रक्रिया ए => प्रक्रिया बी धीमी होगी, इसलिए हम इसे प्रक्रिया बी => प्रक्रिया ए के रूप में प्रतिस्थापित करेंगे। (बेशक, परिणाम समान होने की गारंटी है।) ऐसा कहा जाता है कि डेटा वैज्ञानिक लगभग 45% खर्च करते हैं अपना समय डेटा तैयार करने में बिताया, और जब मैं इस प्रक्रिया को तेज़ करने के लिए कुछ करने के बारे में सोच रहा था, तो मुझे फ़ायरडक्स नामक एक मॉड्यूल मिला।

फ़ायरडक्स दस्तावेज़ से, ऐसा लगता है कि यह केवल लिनक्स प्लेटफ़ॉर्म के लिए समर्थित है। चूँकि मैं अपनी मुख्य मशीन पर विंडोज़ का उपयोग करता हूँ, इसलिए मैं इसे WSL2 (लिनक्स के लिए विंडोज़ सबसिस्टम) से आज़माना चाहूँगा, एक ऐसा वातावरण जो विंडोज़ पर लिनक्स चला सकता है।

मैंने जिस वातावरण का प्रयास किया वह इस प्रकार है।

  • ओएस माइक्रोसॉफ्ट विंडोज 11 प्रो
  • संस्करण 10.0.22631 बिल्ड 22631
  • सिस्टम मॉडल Z690 प्रो आरएस
  • सिस्टम प्रकार x64-आधारित
  • पीसी प्रोसेसर 12वीं पीढ़ी इंटेल (आर) कोर (टीएम) i3-12100, 3300 मेगाहर्ट्ज, 4 कोर, 8 लॉजिकल प्रोसेसर
  • बेसबोर्ड उत्पाद Z690 प्रो आरएस
  • प्लेटफ़ॉर्म रोल डेस्कटॉप
  • स्थापित भौतिक मेमोरी (रैम)64.0 जीबी

फ़ायरडक्स को स्थापित और कॉन्फ़िगर करना

डब्लूएसएल स्थापित करें

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 गुना अधिक तेजी से हासिल किया गया है, जैसा कि संगठन द्वारा आधिकारिक तौर पर घोषणा की गई है। (मैं अगली बार विभिन्न प्रतिस्पर्धी पुस्तकालयों के साथ प्रदर्शन की तुलना करूंगा।)

FireDucks: Get performance beyond pandas with zero learning cost!

शून्य सीखने की लागत

बिना कुछ भी सोचे सटीक पांडा नोटेशन का पालन करने की क्षमता एक बहुत बड़ा लाभ है। फायरडक्स के अलावा, अन्य डेटा फ़्रेम एक्सेलेरेशन लाइब्रेरी भी हैं, लेकिन उन्हें सीखना बहुत महंगा है और भूलना बहुत आसान है।

उदाहरण के लिए, यदि आप ध्रुवों वाले कॉलम जोड़ना चाहते हैं, तो आपको कुछ इस तरह लिखना होगा।

# pandas df["new_col"] = df["A"]   1
# polars 
df = df.with_columns((pl.col("A")   1).alias("new_col"))

मौजूदा कोड को बदलने की लगभग कोई आवश्यकता नहीं है

मेरे पास कई ईटीएल और अन्य परियोजनाएं हैं जो पांडा का उपयोग करती हैं, और आयात विवरण को फायरडक्स के साथ स्थापित और प्रतिस्थापित करके प्रदर्शन में सुधार देखना अच्छा होगा।

यदि आप इसे और जोड़ना चाहते हैं, तो बेझिझक नीचे टिप्पणी करें।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/codewithVEd/fireducks-get-performance-beyond-pandas-with-zero-learning-cost-9do?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3