K dispozícii je vydanie Python knižnice pre vedecké výpočty NumPy 2.0.0, zameranej na prácu s viacrozmernými poľami a maticami, ako aj poskytujúcej veľkú zbierku funkcií implementujúcich rôzne algoritmy súvisiace s použitím matíc. NumPy je jednou z najžiadanejších knižníc používaných pre vedecké výpočty. Kód projektu je napísaný v jazyku Python s optimalizáciami v jazyku C a je distribuovaný pod licenciou BSD.
NumPy 2.0.0 je označený ako prvé významné vydanie od roku 2006.
V novej verzii, okrem nových funkcií a optimalizácie výkonu, došlo k zmenám v ABI, Python API a C-API, ktoré narušujú spätnú kompatibilitu. Napríklad, knižnica SciPy zostavená s NumPy 1.x pre prácu s NumPy 2.0 bude vyžadovať rekompiláciu. V určitých prípadoch môže byť potrebné upraviť kód aplikácií na používanie NumPy 2.0.
Najväčšie narušenie sa týka zachovania presnosti skalárnych výrazov, napríklad "np.float32(3) + 3" teraz vráti hodnotu s typom float32, nie float64, a vo výrazoch s viacerými typmi pre výsledok sa použije typ s najvyššou presnosťou, t.j. "np.array([3], dtype=np.float32) + np.float64(3)" vráti hodnotu s typom float64. Zmenené boli celočíselné typy používané predvolene na platforme Windows - na 64-bitových systémoch sa teraz používa 64-bitový celočíselný typ, a na 32-bitových - 32-bitový (predtým sa používal ekvivalent typu long v jazyku C, a teraz 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 rozmerov a argumentov stanovený cez makrá NPY_MAXDIMS a NPY_MAXARGS bol zvýšený na 64. Všetky komplexné typy prešli na používanie štandardných typov zo špecifikácie C99 (cfloat_t, cdouble_t, clongdouble_t). Bol pridaný nový C API pre vytváranie vlastných dtype. Navrhnuté sú nové zjednodušené funkcie inicializácie PyArray_ImportNumPyAPI a PyUFunc_ImportUFuncAPI.
V Python API je zabezpečené jasnejšie rozdelenie medzi verejným a súkromným API, navrhnutá je nová štruktúra modulov. Približne 100 funkcií, modulov a konštánt bolo presunutých z hlavného menného priestoru "np", označených ako zastarané alebo odstránené.
Čistota menného priestoru np.lib. Počet objektov v hlavnom mennom priestore sa znížil o 10 %, a v mennom priestore numpy.lib o 80 %. Prevedené do súkromných menných priestorov numpy.core. Niektoré metódy boli odstránené z tried np.ndarray a np.generic. Vytvoril sa nový menný priestor numpy.stringsf so stringovými operáciami.
Medzi nové funkcie patrí podpora typov float32 a longdouble vo všetkých funkciách numpy.fft, podpora štandardného API Array v hlavnom mennom priestore, nový menný priestor a typy pre reťazce variabilnej dĺžky. Optimálna výkonnosť bola dosiahnutá pomocou knižníc Intel x86-simd-sort a Google Highway pre reťazcové funkcie sort, argsort, partition a argpartition, a skrátené operácie s pevnými reťazcami v module numpy.char. Pridané nové API
opt_func_info pre trasovanie a introspekciu.
Zdroj: opennet.ru
