Elérhető a Python-könyvtár tudományos számításokhoz, NumPy 2.0.0 kiadása, amely a többdimenziós tömbökkel és mátrixokkal való munkavégzésre összpontosít, valamint a mátrixok használatával kapcsolatos különféle algoritmusok megvalósítására szolgáló függvények nagy gyűjteményét kínálja. A NumPy az egyik legnépszerűbb könyvtár, amelyet tudományos számításokhoz használnak. A projekt kódja Python nyelven íródott C nyelvű optimalizálással, és a BSD licenc alatt kerül terjesztésre.
A NumPy 2.0.0 az első jelentős kiadás 2006 óta.
Az új verzióban az új funkciók és a teljesítményoptimalizálás mellett az ABI-ban, a Python API-ban és a C-API-ban is történtek olyan változtatások, amelyek sértik a visszafelé kompatibilitást. Például a NumPy 1.x-el fordított SciPy-könyvtár újrafordítást igényel, hogy működjön a NumPy 2.0-val. Egyes esetekben kódmódosításra lehet szükség a NumPy 2.0 alkalmazásokban való használatához.
Наиболее крупное нарушение связано с сохранением точности скалярных выражений, например, «np.float32(3) + 3» теперь вернёт значение с типом float32, а не float64, а в выражениях с несколькими типами для результата будет использован тип с наивысшей точностью, т.е. «np.array([3], dtype=np.float32) + np.float64(3)» вернёт значение с типом float64. Изменены целочисленные типы, применяемые по умолчанию на платфoрме Windows — на 64-разрядных системах теперь применяется 64-разрядный целый тип, а на 32-разрядных — 32-разрядный (ранее использовался аналог Си-типа long, а теперь эквивалент np.intp).
A C-API egyes definícióit lecserélték vagy eltávolították, például a PyArray_Descr szerkezete megváltozott. Az NPY_MAXDIMS és NPY_MAXARGS makrók által beállított dimenziók és argumentumok maximális száma 64-re nőtt. Minden összetett típus a C99 specifikációból származó szabványos típusok használatára vált (cfloat_t, cdouble_t, clongdouble_t). Új C API hozzáadva egyéni dtypes létrehozásához. Új, egyszerűsített PyArray_ImportNumPyAPI és PyUFunc_ImportUFuncAPI inicializálási funkciókat javasoltak.
A Python API egyértelműbben választja szét a nyilvános és privát API-kat, és új modulstruktúrát vezet be. Körülbelül 100 függvény, modul és konstans került ki a fő „np” névtérből, elavult vagy eltávolított.
Megtisztította az np.lib névteret. A fő névtérben lévő objektumok száma 10%-kal, a numpy.lib névtérben pedig 80%-kal csökkent. A numpy.core névteret privátra helyeztük át. Eltávolított néhány metódust az np.ndarray és np.generic osztályokból. Új névteret hozott létre a numpy.stringsf karakterlánc-műveletekkel.
Az új funkciók közé tartozik a float32 és longdouble típusok támogatása az összes numpy.fft függvényben, a szabványos Array API támogatása a fő névtérben, egy új névtér és a változó hosszúságú karakterláncok típusai. A teljesítmény optimalizálása az Intel x86-simd-sort és a Google Highway könyvtárak segítségével történt a sort, argsort, partition és argpartition karakterlánc-függvényekhez, a numpy.char modulban a rögzített karakterláncokkal végzett műveletek felgyorsultak. Új API hozzáadva
opt_func_info a nyomkövetéshez és az önvizsgálathoz.
Forrás: opennet.ru
