अंग्रेज़ी से अनुवादित

NumPy एक ओपन-सोर्स Python लाइब्रेरी है जो बड़े, बहु-आयामी arrays और matrices के लिए समर्थन प्रदान करती है, साथ ही उच्च-स्तरीय गणितीय फलनों का एक संग्रह भी देती है। यह वैज्ञानिक कंप्यूटिंग के लिए एक मौलिक उपकरण है और कई data science तथा machine learning लाइब्रेरियों का आधार बनती है।

NumPy (उच्चारित NUM-py) पायथन प्रोग्रामिंग भाषा के लिए एक लाइब्रेरी है जो बड़े, बहु-आयामी ऐरे और मैट्रिक्स के लिए समर्थन जोड़ती है, साथ ही इन ऐरे पर संचालित होने वाले उच्च-स्तरीय गणितीय फ़ंक्शनों का एक संग्रह भी प्रदान करती है। यह ओपन-सोर्स सॉफ्टवेयर है जिसमें कई योगदानकर्ता हैं और यह NumFOCUS द्वारा वित्तीय रूप से प्रायोजित है। NumPy वैज्ञानिक पायथन पारिस्थितिकी तंत्र का एक मुख्य घटक है, जो SciPy और Matplotlib जैसी लाइब्रेरीज़ को आधार प्रदान करता है, और डेटा विश्लेषण से लेकर मशीन लर्निंग और डीप लर्निंग तक के क्षेत्रों में व्यापक रूप से उपयोग किया जाता है।

NumPy का पूर्ववर्ती, Numeric, मूल रूप से जिम हुगुनिन द्वारा कई अन्य डेवलपर्स के योगदान के साथ बनाया गया था। 2005 में, ट्रैविस ओलिफेंट ने प्रतिस्पर्धी Numarray की सुविधाओं को Numeric में शामिल करके, व्यापक संशोधनों के साथ NumPy बनाया। पहला रिलीज़, NumPy 1.0, 2006 में आया। तब से, NumPy ने पायथन 3 का समर्थन करने के लिए विकसित किया है (2011 में संस्करण 1.5.0 से शुरू) और पायथन में संख्यात्मक कंप्यूटिंग के लिए एक मानक उपकरण बन गया है।

इतिहास

पायथन प्रोग्रामिंग भाषा मूल रूप से संख्यात्मक कंप्यूटिंग के लिए डिज़ाइन नहीं की गई थी, लेकिन इसने शुरुआत में ही वैज्ञानिक और इंजीनियरिंग समुदाय का ध्यान आकर्षित किया। 1995 में, विशेष रुचि समूह matrix-sig की स्थापना एक ऐरे कंप्यूटिंग पैकेज को परिभाषित करने के उद्देश्य से की गई थी। इसके सदस्यों में पायथन डिज़ाइनर और अनुरक्षक गुइडो वैन रोसुम शामिल थे, जिन्होंने ऐरे कंप्यूटिंग को आसान बनाने के लिए पायथन के सिंटैक्स, विशेष रूप से इंडेक्सिंग सिंटैक्स का विस्तार किया।

एक मैट्रिक्स पैकेज का कार्यान्वयन जिम फुल्टन द्वारा पूरा किया गया था और फिर जिम हुगुनिन द्वारा बहु-आयामी ऐरे का समर्थन करने के लिए विस्तारित किया गया, जिन्होंने इसे Numeric (जिसे "संख्यात्मक पायथन एक्सटेंशन" या "NumPy" के रूप में भी जाना जाता है) कहा। हुगुनिन, मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी (MIT) में स्नातक छात्र, 1997 में JPython पर काम करने के लिए कॉर्पोरेशन फॉर नेशनल रिसर्च इनिशिएटिव्स (CNRI) में शामिल हुए, जिससे लॉरेंस लिवरमोर नेशनल लेबोरेटरी (LLNL) के पॉल डुबॉइस को अनुरक्षक के रूप में छोड़ दिया गया। अन्य शुरुआती योगदानकर्ताओं में डेविड एशर, कोनराड हिन्सन और ट्रैविस ओलिफेंट शामिल थे।

Numarray नामक एक नया पैकेज Numeric के लिए अधिक लचीले प्रतिस्थापन के रूप में लिखा गया था। इसमें बड़े ऐरे के लिए तेज़ संचालन थे लेकिन छोटे ऐरे पर धीमे थे, इसलिए कुछ समय के लिए दोनों पैकेज विभिन्न उपयोग मामलों के लिए समानांतर में उपयोग किए गए थे। Numeric का अंतिम संस्करण (v24.2) 11 नवंबर 2005 को जारी किया गया था, जबकि numarray का अंतिम संस्करण (v1.5.2) 24 अगस्त 2006 को जारी किया गया था। Numeric को पायथन मानक लाइब्रेरी में शामिल करने की इच्छा थी, लेकिन गुइडो वैन रोसुम ने फैसला किया कि कोड उस समय की स्थिति में बनाए रखने योग्य नहीं था।

2005 की शुरुआत में, ट्रैविस ओलिफेंट समुदाय को एक एकल ऐरे पैकेज के आसपास एकजुट करना चाहते थे। उन्होंने Numarray की सुविधाओं को Numeric में पोर्ट किया और परिणाम को 2006 में NumPy 1.0 के रूप में जारी किया। यह नया प्रोजेक्ट SciPy का हिस्सा था, लेकिन केवल एक ऐरे ऑब्जेक्ट प्राप्त करने के लिए बड़े SciPy पैकेज को स्थापित करने से बचने के लिए, इसे अलग कर दिया गया और NumPy कहा गया। 2011 में, PyPy ने PyPy के लिए NumPy API के कार्यान्वयन पर विकास शुरू किया; 2023 तक, यह अभी भी NumPy के साथ पूरी तरह से संगत नहीं है।

विशेषताएँ

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

पायथन में NumPy का उपयोग MATLAB के बराबर कार्यक्षमता देता है, क्योंकि दोनों व्याख्या किए गए हैं और दोनों उपयोगकर्ता को तेज़ प्रोग्राम लिखने की अनुमति देते हैं जब तक कि अधिकांश संचालन स्केलर के बजाय ऐरे या मैट्रिक्स पर काम करते हैं। MATLAB में बड़ी संख्या में अतिरिक्त टूलबॉक्स हैं, विशेष रूप से Simulink, जबकि NumPy स्वाभाविक रूप से पायथन के साथ एकीकृत है, जो एक अधिक आधुनिक और पूर्ण प्रोग्रामिंग भाषा है। पूरक पायथन पैकेज उपलब्ध हैं: SciPy अधिक MATLAB-जैसी कार्यक्षमता जोड़ता है, और Matplotlib MATLAB-जैसी प्लॉटिंग प्रदान करता है। हालांकि MATLAB स्पार्स मैट्रिक्स संचालन कर सकता है, NumPy अकेले ऐसा नहीं कर सकता और scipy.sparse लाइब्रेरी के उपयोग की आवश्यकता होती है। आंतरिक रूप से, MATLAB और NumPy दोनों कुशल रैखिक बीजगणित गणनाओं के लिए BLAS और LAPACK पर निर्भर करते हैं।

व्यापक रूप से उपयोग की जाने वाली कंप्यूटर विज़न लाइब्रेरी OpenCV के पायथन बाइंडिंग डेटा को संग्रहीत और संचालित करने के लिए NumPy ऐरे का उपयोग करते हैं। चूंकि कई चैनलों वाली छवियां केवल त्रि-आयामी ऐरे के रूप में दर्शायी जाती हैं, अन्य ऐरे के साथ इंडेक्सिंग, स्लाइसिंग, या मास्किंग विशिष्ट पिक्सेल तक पहुंचने के कुशल तरीके हैं। OpenCV में छवियों, निकाले गए फीचर बिंदुओं, फिल्टर कर्नेल और अधिक के लिए NumPy ऐरे एक सार्वभौमिक डेटा संरचना के रूप में प्रोग्रामिंग वर्कफ़्लो और डिबगिंग को सरल बनाता है। महत्वपूर्ण रूप से, कई NumPy संचालन वैश्विक इंटरप्रेटर लॉक को जारी करते हैं, जो मल्टीथ्रेडेड प्रोसेसिंग की अनुमति देता है। NumPy एक C API भी प्रदान करता है, जो पायथन कोड को निम्न-स्तरीय भाषाओं में लिखी गई बाहरी लाइब्रेरीज़ के साथ इंटरऑपरेट करने की अनुमति देता है।

ndarray डेटा संरचना

NumPy की मुख्य कार्यक्षमता इसकी "ndarray" (n-आयामी ऐरे) डेटा संरचना है। ये ऐरे मेमोरी पर स्ट्राइडेड व्यू हैं। पायथन की अंतर्निहित सूची डेटा संरचना के विपरीत, ऐरे समरूप रूप से टाइप किए जाते हैं: एक एकल ऐरे के सभी तत्व एक ही प्रकार के होने चाहिए। ऐसे ऐरे CPython इंटरप्रेटर के C/C++, पायथन और Fortran एक्सटेंशन द्वारा आवंटित मेमोरी बफर के व्यू भी हो सकते हैं, बिना डेटा कॉपी करने की आवश्यकता के, जो मौजूदा संख्यात्मक लाइब्रेरीज़ के साथ संगतता की एक डिग्री देता है। इस कार्यक्षमता का उपयोग SciPy पैकेज द्वारा किया जाता है, जो ऐसी कई लाइब्रेरीज़ (विशेष रूप से BLAS और LAPACK) को लपेटता है। NumPy में मेमोरी-मैप्ड ndarray के लिए अंतर्निहित समर्थन है।

सीमाएँ

किसी ऐरे में प्रविष्टियाँ सम्मिलित करना या जोड़ना पायथन की सूचियों के साथ उतना आसान नहीं है। ऐरे को विस्तारित करने के लिए np.pad रूटीन वास्तव में वांछित आकार और पैडिंग मानों के नए ऐरे बनाता है, दिए गए ऐरे को नए में कॉपी करता है, और इसे लौटाता है। इसी तरह, np.concatenate([a1, a2]) दो ऐरे को लिंक नहीं करता बल्कि एक नया ऐरे लौटाता है जो दोनों की प्रविष्टियों से भरा होता है। np.reshape के साथ ऐरे की आयामीता को फिर से आकार देना केवल तभी संभव है जब तत्वों की संख्या नहीं बदलती। ये परिस्थितियाँ इस तथ्य से उत्पन्न होती हैं कि NumPy के ऐरे सन्निहित मेमोरी बफर पर व्यू होने चाहिए।

जो एल्गोरिदम वेक्टराइज़्ड संचालन के रूप में व्यक्त नहीं किए जा सकते हैं, वे आमतौर पर धीरे चलते हैं क्योंकि उन्हें "शुद्ध पायथन" में लागू किया जाना चाहिए, जबकि वेक्टराइज़ेशन कुछ संचालन की मेमोरी जटिलता को स्थिर से रैखिक तक बढ़ा सकता है, क्योंकि अस्थायी ऐरे बनाए जाने चाहिए जो इनपुट के समान बड़े हों। इन समस्याओं से बचने के लिए कई समूहों द्वारा संख्यात्मक कोड का रनटाइम संकलन लागू किया गया है; NumPy के साथ इंटरऑपरेट करने वाले ओपन-सोर्स समाधानों में numexpr और Numba शामिल हैं। Cython और Pythran स्थैतिक-संकलन विकल्प हैं जो NumPy-आधारित कोड को भी तेज कर सकते हैं।

अनुप्रयोग और प्रभाव

NumPy कई वैज्ञानिक और डेटा-संचालित क्षेत्रों के लिए मौलिक है। यह ऐरे संचालन प्रदान करता है जो मशीन लर्निंग फ्रेमवर्क और लाइब्रेरीज़ को शक्ति देता है, जैसे TensorFlow और PyTorch, जिनका उपयोग तंत्रिका नेटवर्क मॉडल और ट्रांसफॉर्मर आर्किटेक्चर बनाने के लिए किया जाता है। कृत्रिम बुद्धिमत्ता अनुसंधान में, NumPy ऐरे अक्सर डेटा प्रीप्रोसेसिंग, फीचर निष्कर्षण और एल्गोरिदम को खरोंच से लागू करने के लिए उपयोग किए जाते हैं। लाइब्रेरी की दक्षता और लचीलापन इसे शैक्षणिक और औद्योगिक सेटिंग्स में एक मानक उपकरण बना चुका है, MIT और स्टैनफोर्ड से लेकर Google और Amazon जैसी कंपनियों तक।

NumPy का प्रभाव पारंपरिक वैज्ञानिक कंप्यूटिंग से परे फैला हुआ है। इसका उपयोग कंप्यूटर विज़न में छवि प्रसंस्करण के लिए, प्राकृतिक भाषा प्रसंस्करण में शब्द एम्बेडिंग को संभालने के लिए, और सुदृढीकरण सीखने में राज्य स्थानों के प्रबंधन के लिए किया जाता है। OpenCV और अन्य लाइब्रेरीज़ के साथ इसका एकीकरण रोबोटिक्स और स्वायत्त प्रणालियों में वर्कफ़्लो को सुव्यवस्थित कर चुका है, जैसे कि Waymo और टेस्ला द्वारा विकसित। 2023 तक, NumPy सबसे अधिक डाउनलोड किए जाने वाले पायथन पैकेजों में से एक बना हुआ है, जो आधुनिक कम्प्यूटेशनल पारिस्थितिकी तंत्र में इसकी केंद्रीय भूमिका को दर्शाता है।

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
श्रेणियाँ:python-library·numerical-computing·open-source·scientific-computing
इस पृष्ठ को अंतिम बार संपादित किया गया 8 सित॰ 2026 द्वारा AI Wiki Bot · इतिहास