Versioni e rekrutës Python e bibliotekës për llogaritje shkencore NumPy 2.0.0 është e disponueshme, e orientuar drejt punës me matricat dhe shumë-dimensional arrays, si dhe ofron një koleksion të madh funksionesh që zbatojnë algoritme të ndryshme lidhur me përdorimin e matricave. NumPy është një nga bibliotekat më të kërkuara, që përdoren për llogaritjet shkencore. Kodi i projektit është shkruar në gjuhën Python me optimizime në gjuhën C dhe shpërndahet nën licencën BSD.
NumPy 2.0.0 është shpallur si lëshimi i parë i rëndësishëm që nga viti 2006.
Në këtë version, përveç mundësive të reja dhe optimizimeve të performancës, janë bërë ndryshime në ABI, Python API dhe C-API që shkelin kompatibilitetin e prapaveçantë. Për shembull, biblioteka SciPy e ndërtuar me NumPy 1.x për të punuar me NumPy 2.0 do të kërkojë ri-kompilim. Në disa raste, për përdorimin e NumPy 2.0 në aplikacione mund të kërkohet modifikimi i kodit.
Shkelja mĂ« e madhe lidhet me ruajtjen e saktĂ«sisĂ« sĂ« shprehjeve skalarĂ«, pĂ«r shembull, 'np.float32(3) + 3' tani do tĂ« kthejĂ« njĂ« vlerĂ« me tipin float32, dhe jo float64, ndĂ«rsa nĂ« shprehjet me tipa tĂ« ndryshĂ«m, pĂ«r rezultatin do tĂ« pĂ«rdoret tipi me saktĂ«sinĂ« mĂ« tĂ« lartĂ«, dmth 'np.array([3], dtype=np.float32) + np.float64(3)' do tĂ« kthejĂ« njĂ« vlerĂ« me tipin float64. Tipat e tĂ«rĂ« janĂ« ndryshuar tĂ« pĂ«rdoren si parazgjedhje nĂ« platformĂ«n Windows â nĂ« sistemet 64-bit tani pĂ«rdoret tipi i plotĂ« 64-bit, dhe nĂ« ato 32-bit â tipi i plotĂ« 32-bit (mĂ« parĂ« ishte analog me tipin C long, dhe tani Ă«shtĂ« ekuivalenti np.intp).
Disa definita në C-API janë zëvendësuar ose fshirë, për shembull, struktura PyArray_Descr është ndryshuar. Numri maksimal i dimensioneve dhe argumenteve, i caktuar përmes makroseve NPY_MAXDIMS dhe NPY_MAXARGS, është rritur në 64. Të gjitha tipet komplekse janë kaluar për të përdorur tipat standard nga specifikimi C99 (cfloat_t, cdouble_t, clongdouble_t). Një API i ri C është shtuar për të krijuar dtype të personalizuara. Funksione të reja të thjeshta janë propozuar, si PyArray_ImportNumPyAPI dhe PyUFunc_ImportUFuncAPI.
Në API-të Python është siguruar një ndarje më e dukshme midis API-ve publike dhe private, duke propozuar një strukturë të re modulore. Rreth 100 funksione, module dhe konstanta janë hequr nga hapësira kryesore e emrave 'np', janë shpallur të skaduara ose fshirë.
Hapësira e emrave np.lib është pastruar. Numri i objekteve në hapësirën kryesore të emrave është reduktuar me 10%, ndërsa në hapësirën e emrave numpy.lib - me 80%. Janë kaluar në hapësirat private të emrave numpy.core. Disa metoda janë fshirë nga klasat np.ndarray dhe np.generic. Një hapësirë e re emrash numpy.stringsf me operacione string është krijuar.
Nga mundësitë e reja, mund të theksohet mbështetja për tipat float32 dhe longdouble në të gjitha funksionet numpy.fft, mbështetje për API-në standarde të Array në hapësirën kryesore të emrave, një hapësirë e re emrash dhe tipat për stringje me gjatësi të ndryshueshme. Janë bërë optimizime të performancës duke përdorur bibliotekat Intel x86-simd-sort dhe Google Highway për funksionet e stringjeve sort, argsort, partition dhe argpartition, operacionet me stringje fikse në modulim numpy.char janë përshpejtuar. Një API i ri
opt_func_info është shtuar për gjurmimin dhe introspeksionin.
Burimi: opennet.ru
