K dispozícii je vydanie knižnice Python pre vedecké výpočty NumPy 2.0.0, zamerané na prácu s viacrozmernými poľami a maticami a tiež poskytujúce veľkú zbierku funkcií s implementáciou rôznych algoritmov súvisiacich s používaním matíc. NumPy je jednou z najpopulárnejších knižníc používaných na vedecké výpočty. Kód projektu je napísaný v Pythone pomocou optimalizácií v C a je distribuovaný pod licenciou BSD.
NumPy 2.0.0 predstavuje prvé významné vydanie od roku 2006.
V novej verzii boli okrem nových funkcií a optimalizácie výkonu vykonané zmeny v ABI, Python API a C-API, ktoré porušujú spätnú kompatibilitu. Napríklad knižnica SciPy skompilovaná s NumPy 1.x bude vyžadovať rekompiláciu, aby fungovala s NumPy 2.0. V niektorých prípadoch môžu byť potrebné zmeny kódu na použitie NumPy 2.0 v aplikáciách.
Najvýznamnejšia chyba súvisí so zachovaním presnosti skalárnych výrazov, napríklad „np.float32(3) + 3“ teraz vráti hodnotu typu float32, nie float64, a vo výrazoch s viacerými typmi sa pre výsledok použije typ s najvyššou presnosťou, t. j. „np.array([3], dtype=np.float32) + np.float64(3)“ vráti hodnotu typu float64. Predvolené celočíselné typy používané na platforme boli zmenené. Windows — na 64-bitových systémoch sa teraz používa 64-bitový celočíselný typ a na 32-bitových systémoch 32-bitový typ (predtým sa používal analóg typu C long, teraz však ekvivalent np.intp).
Niektoré definície v C-API boli nahradené alebo odstránené, napríklad štruktúra PyArray_Descr bola zmenená. Maximálny počet dimenzií a argumentov nastavených prostredníctvom makier NPY_MAXDIMS a NPY_MAXARGS sa zvýšil na 64. Všetky komplexné typy boli prepnuté na používanie štandardných typov zo špecifikácie C99 (cfloat_t, cdouble_t, clongdouble_t). Pridané nové C API na vytváranie vlastných dtypes. Boli navrhnuté nové zjednodušené inicializačné funkcie PyArray_ImportNumPyAPI a PyUFunc_ImportUFuncAPI.
Python API poskytuje explicitnejšie oddelenie medzi verejnými a súkromnými API a zavádza novú modulovú štruktúru. Asi 100 funkcií, modulov a konštánt bolo presunutých z hlavného priestoru názvov "np", zastaraných alebo odstránených.
Vyčistený priestor názvov np.lib. Počet objektov v hlavnom mennom priestore sa znížil o 10 % a v mennom priestore numpy.lib o 80 %. Menný priestor numpy.core bol presunutý do súkromného. Odstránené niektoré metódy z tried np.ndarray a np.generic. Vytvoril sa nový menný priestor numpy.stringsf s operáciami s reťazcami.
Medzi nové funkcie patrí podpora typov float32 a longdouble vo všetkých funkciách numpy.fft, podpora štandardného Array API v hlavnom mennom priestore, nový menný priestor a typy pre reťazce s premenlivou dĺžkou. Optimalizácia výkonu bola vykonaná pomocou knižníc Intel x86-simd-sort a Google Highway pre funkcie reťazcov sort, argsort, partition a argpartition, operácie s pevnými reťazcami v module numpy.char boli zrýchlené. Pridané nové API
opt_func_info na sledovanie a introspekciu.
Zdroj: opennet.ru
