नई सुविधाएँ
- नया variable-length string dtype,
StringDType, और string operations के लिए numpy.strings namespace जोड़ा गया।
- सभी
numpy.fft functions में float32 और longdouble support।
- मुख्य
numpy namespace में array API standard support।
प्रदर्शन सुधार
- sorting functions (
sort, argsort, partition, argpartition) को Intel x86-simd-sort और Google Highway libraries का उपयोग करके तेज़ किया गया।
- macOS Accelerate support और macOS >=14 के लिए binary wheels उपलब्ध, जिससे linear algebra operations का प्रदर्शन काफी बेहतर हुआ।
numpy.char fixed-length string operations को तेज़ किया गया।
- hardware-specific kernels को जाँचने और उपयोग करने के लिए नई tracing और inspection API,
opt_func_info, जोड़ी गई।
Python API सुधार
- public API और non-public API के बीच स्पष्ट विभाजन, नई module structure।
- कई deprecated functions और aliases हटाए गए, जिससे सीखना और उपयोग करना आसान हुआ।
- standard dtype names और नया
isdtype checking function जोड़ा गया।
C API सुधार
- custom dtype बनाने के लिए नई public C API जोड़ी गई।
- पुराने functions और macros हटाए गए, non-public internals छिपाए गए।
- नई initialization functions:
PyArray_ImportNumPyAPI और PyUFunc_ImportUFuncAPI।
बेहतर व्यवहार
- NEP 50 अपनाकर type promotion behavior को बेहतर बनाया गया, जिससे यह input arrays के data values पर नहीं बल्कि केवल dtype पर निर्भर करता है।
- Windows पर default integer type
int32 से int64 में बदला गया।
- अधिकतम array dimensions की संख्या 32 से बढ़ाकर 64 कर दी गई।
दस्तावेज़ीकरण
- reference guide navigation में बड़ा सुधार।
- source से build करने वाले docs को पूरी तरह फिर से लिखा गया।
Python API में हटाई गई चीज़ें
np.geterrobj, np.seterrobj और संबंधित ufunc keyword argument extobj= हटाए गए।
np.cast हटाया गया, इसके स्थान पर np.asarray(arg, dtype=dtype) का उपयोग करें।
np.source हटाया गया, इसके स्थान पर inspect.getsource का उपयोग करें।
np.lookfor हटाया गया।
numpy.who हटाया गया, और Spyder या Jupyter Notebook जैसे IDE के variable explorer का उपयोग सुझाया गया।
- कई deprecated functions और aliases हटाए गए।
GN⁺ की राय
- प्रदर्शन सुधार: नए sorting algorithms और macOS Accelerate support के कारण data processing speed में बड़ा सुधार होने की उम्मीद है।
- API सफाई: deprecated functions और aliases हटने से NumPy का उपयोग अधिक सहज और संक्षिप्त हो गया है।
- Type promotion: NEP 50 अपनाने से type promotion behavior अधिक अनुमानित हो गया है। इससे mixed dtype operations में अप्रत्याशित परिणाम कम करने में मदद मिलेगी।
- दस्तावेज़ीकरण सुधार: reference guide और build docs में सुधार से developers के लिए NumPy को समझना और उपयोग करना आसान होगा।
- Compatibility issues: कई API बदलावों के कारण मौजूदा code असंगत हो सकता है। code अपडेट करने के लिए migration guide देखना आवश्यक है।
2 टिप्पणियां
लगता है, टकराने वाले पैकेज काफ़ी होंगे..
Hacker News टिप्पणियाँ
जटिल ऑपरेशनों को संयोजित करने का तरीका: non-element-wise operations को बनाने के लिए एक अधिक सरल और याद रखने में आसान तरीका चाहिए। तरीके बहुत ज़्यादा हैं, इसलिए हर बार इसे फिर से सीखना पड़ता है.
Windows में डिफ़ॉल्ट integer type में बदलाव: Windows में डिफ़ॉल्ट integer type
int32सेint64में बदल गया है। यह अच्छा है क्योंकि अब यह दूसरे platforms के साथ मेल खाता है.Numpy का बड़ा अपडेट: जो उपयोगकर्ता सीधे Numpy का अक्सर इस्तेमाल नहीं करते, उनके लिए शायद बहुत बड़ा बदलाव न हो। वे मुख्य रूप से pandas और scipy का उपयोग करते हैं, और ज़रूरत पड़ने पर ही Numpy algorithms का इस्तेमाल करते हैं.
अपडेट चक्र: बड़े अपडेट आने पर तुरंत upgrade नहीं करते, बल्कि stable version आने तक इंतज़ार करना पसंद करते हैं.
वर्ज़न प्रबंधन: 18 साल में बड़े बदलाव वाला पहला major release होने के कारण, इसे नए version के रूप में fork करना बेहतर लगता है।
pip install numpy2से install किया जाए, ताकि दूसरी libraries के साथ compatibility की चिंता न करनी पड़े.पैकेज compatibility समस्या: कुछ packages 1.x version पर pin नहीं किए गए हैं, जिससे समस्याएँ हो रही हैं।
pip install numpy==1.*से इसे अस्थायी रूप से हल किया जा सकता है.रिलीज़ नोट्स लिंक: Numpy 2.0.0 release notes का लिंक दिया गया है। Numpy 2.0.0 रिलीज़ नोट्स