मतलाब और पायथन के बीच, सामान्य सांख्यिकीय डेटा विश्लेषण के लिए कौन सी भाषा अच्छी है? पेशेवरों और विपक्ष, पहुंच के अलावा, प्रत्येक के लिए क्या हैं?
मतलाब और पायथन के बीच, सामान्य सांख्यिकीय डेटा विश्लेषण के लिए कौन सी भाषा अच्छी है? पेशेवरों और विपक्ष, पहुंच के अलावा, प्रत्येक के लिए क्या हैं?
जवाबों:
पिछले 10+ वर्षों से मैथलैब उपयोगकर्ता के रूप में, मैं आपको पायथन सीखने की सलाह देता हूं। एक बार जब आप किसी भाषा में पर्याप्त रूप से कुशल हो जाते हैं, तो जब आप जिस भाषा में सीख रहे होते हैं, उसमें काम करते हैं, तो ऐसा लगेगा कि आप पर्याप्त उत्पादक नहीं हैं, और आप अपनी डिफ़ॉल्ट सर्वश्रेष्ठ भाषा का उपयोग करने के लिए वापस आ जाएंगे। बहुत कम से कम, मेरा सुझाव है कि आप कई भाषाओं में समान रूप से कुशल बनने की कोशिश करेंगे (मैं आर को भी सुझाव दूंगा)।
मुझे मतलूब के बारे में क्या पसंद है:
मतलाब के बारे में मुझे क्या पसंद नहीं है:
median
कार्य है, जो डेटा का एक प्रकार करता है, फिर मध्य मान लेता है । यह 70 के दशक से गलत एल्गोरिथम रहा है।-nojvm
मदद करने के लिए प्रकट होता है ...
shuffle
एक टूलबॉक्स में हो सकता है, स्टॉक मैटलैब नहीं है। शायद ही कभी बेसिन से भी बदतर हो सकता है randperm
जो एक यादृच्छिक वेक्टर के सॉर्ट इंडेक्स देता है। फिर से, यह शायद गलत एल्गोरिथ्म है (मैंने केवल नट-फिशर-येट्स के बारे में यहाँ आँकड़े पर सीखा है। ईए) ..
randperm
यह है कि यह बीजारोपण से प्रभावित होता है randn
, जबकि नुथ-फिशर-येट्स का एक मैक्सिको संस्करण शायद रैंडन सीड 'आंतरिक' तक नहीं पहुंच सकता है, और शायद शुद्ध शुद्ध संस्करण। बहुत धीमा हो।
चलो इसे तीन क्षेत्रों में तोड़ते हैं (मेरे सिर के ऊपर) जहां प्रोग्रामिंग आंकड़ों से मिलती है: डेटा क्रंचिंग, संख्यात्मक दिनचर्या (अनुकूलन और इस तरह) और सांख्यिकीय पुस्तकालय (मॉडलिंग, आदि)।
सबसे पहले, सबसे बड़ा अंतर यह है कि पायथन एक सामान्य प्रयोजन प्रोग्रामिंग भाषा है। जब तक आपकी दुनिया मोटे तौर पर संख्यात्मक सरणी के लिए आइसोमॉर्फिक है, तब तक मैटलैब महान है। एक बार जब आप डेटा मुंगिंग और संबंधित मुद्दों से निपटना शुरू करते हैं, तो पाइथन माटलैब से आगे निकल जाता है। उदाहरण के लिए, ग्रेग विल्सन की पुस्तक: डेटा क्रंचिंग: जावा, पायथन और अधिक का उपयोग करके हर दिन की समस्याओं को हल करें ।
दूसरे पर, Matlab वास्तव में संख्यात्मक कार्य के साथ चमकता है। अनुसंधान समुदाय का एक बहुत का उपयोग करता है और आप कहते हैं के लिए देख रहे हैं, कुछ संकुचित संवेदन में एक कागज से संबंधित एल्गोरिथ्म, आप कर रहे हैं अब तक अधिक मैटलैब में एक कार्यान्वयन को खोजने के लिए की संभावना है। दूसरी ओर, Matlab वैज्ञानिक कंप्यूटिंग के PHP की तरह है - यह सूर्य के नीचे सब कुछ के लिए एक समारोह होने का प्रयास करता है। यदि आप एक प्रोग्रामिंग भाषा geek हैं, तो परिणामी सौंदर्यशास्त्र और वास्तुकला पागल हो रहे हैं, लेकिन उपयोगितावादी शब्दों में, यह काम हो जाता है। इसमें से बहुत से Numpy / Scipy के उदय के साथ कम निर्भर हो गए हैं, आप केवल Python के लिए उपलब्ध अनुकूलन और मशीन लर्निंग लाइब्रेरी ढूंढ सकते हैं। C के साथ इंटरफैसिंग लगभग किसी भी भाषा में आसान है।
मॉडलिंग और इस तरह के लिए सांख्यिकीय पुस्तकालयों की उपलब्धता पर, दोनों आर की तरह कुछ की तुलना में कुछ हद तक कमी कर रहे हैं (हालांकि मुझे संदेह है कि दोनों सांख्यिकीय काम करने वाले 80% लोगों की जरूरतों को पूरा करेंगे।) चीजों के पायथन पक्ष के लिए यह प्रश्न देखें। : पायथन एक सांख्यिकी कार्यक्षेत्र के रूप में । मैटलैब पक्ष के लिए, मुझे पता है कि एक सांख्यिकी टूलबॉक्स है, लेकिन मैं किसी को अधिक जानकारों को रिक्त स्थान में भरने दूंगा (मैटलैब के साथ मेरा अनुभव आँकड़ों से संबंधित संख्यात्मक कार्य तक सीमित है)।
मैं 10+ वर्षों से एक avid Matlab उपयोगकर्ता भी रहा हूं। उन वर्षों के लिए मेरे पास अपने काम के लिए बनाए गए टूलबॉक्स से परे काम करने का कोई कारण नहीं था। यद्यपि एक टूलबॉक्स के लिए कई फ़ंक्शन बनाए गए थे, मुझे अक्सर त्वरित टर्नअराउंड विश्लेषण के लिए एल्गोरिदम बनाने की आवश्यकता थी। चूंकि ये एल्गोरिदम अक्सर मैट्रिक्स गणित का उपयोग करते हैं, माटलाब मेरी नौकरी के लिए एक आदर्श उम्मीदवार था। मेरे मैटलैब टूलबॉक्स कोड के अलावा, मेरे समूह के अन्य लोगों ने जावा में बड़े पैमाने पर काम किया क्योंकि भाषाओं के बीच स्पष्ट अंतर था। सालों तक मैं मतलूब से पूरी तरह से खुश था, लेकिन लगभग 3 साल पहले मैंने मतलाब से दूर धीमी गति से संक्रमण शुरू करने का फैसला किया और यह कहते हुए खुशी हुई कि मैंने इसे लगभग एक साल में नहीं खोला है। यहाँ मेरे कदम का कारण हैं:
-nodesktop
विकल्प का उपयोग करना ज्यादातर समय अच्छा होता है, लेकिन क्या यह समस्या है।यह मतलाब के साथ मेरी बहुत सारी पकड़ है। यह एक चमकने वाली विशेषता है: कोड को जल्दी से लिखना आसान है, यदि यह वास्तव में आसान है (यदि बदसूरत नहीं है)। हालांकि मैंने इसे छोड़ दिया, और मेरी खोज ने मुझे क्लूजुर के माध्यम से आगे बढ़ाया-> जावास्क्रिप्ट-> पायथन <-> जूलिया; हाँ, मैं पूरी जगह पर रहा हूँ।