Ir pieejams Python bibliotēkas NumPy 2.0.0 izlaidums, kas ir paredzēta multidimensiālo masīvu un matricas apstrādei, kā arī piedāvā plašu funkcionālo iespēju kopumu, kas saistīts ar matricas algoritmu izmantošanu. NumPy ir viena no vispieprasītākajām bibliotēm, kas tiek izmantota zinātniskajos aprēķinos. Projekta kods ir rakstīts Python valodā, izmantojot optimizācijas C valodā, un tiek izplatīts saskaņā ar BSD licenci.
NumPy 2.0.0 ir atzīmēts kā pirmais būtiskais izlaidums kopš 2006. gada.
Jaunajā versijā, papildus jauniem risinājumiem un veiktspējas optimizācijām, ir veiktas izmaiņas ABI, Python API un C-API, kas pārtrauc atpakaļ saderību. Piemēram, SciPy bibliotēka, kas būvēta uz NumPy 1.x, lai strādātu ar NumPy 2.0, prasīs atkārtotu kompilāciju. Dažos gadījumos, lai izmantotu NumPy 2.0 lietojumprogrammās, var būt nepieciešams veikt izmaiņas kodā.
Vislielākais pārkāpums ir saistīts ar skalaru izteiksmju precizitātes saglabāšanu, piemēram, "np.float32(3) + 3" tagad atgriezīs vērtību ar float32 tipu, nevis float64, savukārt izteiksmēs ar vairāk nekā viena veida tiks izmantots augstākās precizitātes tips, t.i., "np.array([3], dtype=np.float32) + np.float64(3)" atgriezīs vērtību ar float64 tipu. Ir mainīti veselie tipi, kas tiek izmantoti noklusējuma režīmā Windows platformā — 64 bitu sistēmās tagad tiek izmantots 64 bitu veselais tips, bet 32 bitu — 32 bitu veselais tips (iepriekš tika izmantots C tipa long ekvivalents, un tagad ir np.intp).
Daži C-API definējumi ir aizvietoti vai izņemti, piemēram, ir mainīta struktūra PyArray_Descr. Maksimālais dimensiju un argumentu skaits, kas tiek noteikts, izmantojot makros NPY_MAXDIMS un NPY_MAXARGS, ir palielināts līdz 64. Visi kompleksie tipi ir pārgājuši uz standarta C99 specifikācijas tipiem (cfloat_t, cdouble_t, clongdouble_t). Ir pievienots jauns C API, lai izveidotu savus dtype. Ir ietekmētas jaunas vienkāršotas funkcijas PyArray_ImportNumPyAPI un PyUFunc_ImportUFuncAPI.
Python API nodrošina skaidrāku atšķirību starp publisko un privāto API, tiek piedāvāta jauna moduļu struktūra. Apmēram 100 funkcijas, moduļi un konstantes ir izņemtas no galvenā 'np' nosaukumvietas, pasludināts par novecojušu vai izņemtu.
Tīrīta nosaukumu telpa np.lib. Objektu skaits galvenajā nosaukumu telpā samazināts par 10%, bet numpy.lib nosaukumu telpā — par 80%. Pārvērsts par privātu nosaukumu telpu numpy.core. Dažas metodes no klasēm np.ndarray un np.generic ir noņemtas. Izveidota jauna nosaukumu telpa numpy.stringsf ar virkņu darbībām.
Jaunajās iespējās jāatzīmē float32 un longdouble tipu atbalsts visās numpy.fft funkcijās, standarta API Array atbalsts galvenajā nosaukumu telpā, jauna nosaukumu telpa un tipi mainīga garuma virkņu atbalstam. Veikta veiktspējas optimizācija, izmantojot Intel x86-simd-sort un Google Highway bibliotēkas, virkņu funkcijām sort, argsort, partition un argpartition, paātrinātas darbības ar fiksētām virkņu moduli numpy.char. Pievienots jauns API
opt_func_info uztriešanai un introspekcijai.
Avots: opennet.lv
