Este disponibilă o versiune a bibliotecii Python pentru calcul științific NumPy 2.0.0, axată pe lucrul cu matrice și matrice multidimensionale și, de asemenea, care oferă o colecție mare de funcții cu implementarea diverșilor algoritmi legați de utilizarea matricelor. NumPy este una dintre cele mai populare biblioteci folosite pentru calcule științifice. Codul proiectului este scris în Python folosind optimizări în C și este distribuit sub licența BSD.
NumPy 2.0.0 marchează prima lansare semnificativă din 2006.
În noua versiune, pe lângă noile funcții și optimizări de performanță, au fost aduse modificări la ABI, Python API și C-API, care încalcă compatibilitatea cu versiunea anterioară. De exemplu, biblioteca SciPy compilată cu NumPy 1.x va necesita recompilare pentru a funcționa cu NumPy 2.0. În unele cazuri, pot fi necesare modificări de cod pentru a utiliza NumPy 2.0 în aplicații.
Наиболее крупное нарушение связано с сохранением точности скалярных выражений, например, «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).
Unele definiții din C-API au fost înlocuite sau eliminate, de exemplu, structura PyArray_Descr a fost schimbată. Numărul maxim de dimensiuni și argumente setate prin macrocomenzile NPY_MAXDIMS și NPY_MAXARGS a fost crescut la 64. Toate tipurile complexe au fost trecute la utilizarea unor tipuri standard din specificația C99 (cfloat_t, cdouble_t, clongdouble_t). S-a adăugat noua interfață C API pentru crearea de dtypes personalizate. Au fost propuse noi funcții de inițializare simplificate PyArray_ImportNumPyAPI și PyUFunc_ImportUFuncAPI.
API-ul Python oferă o separare mai explicită între API-urile publice și private și introduce o nouă structură de modul. Aproximativ 100 de funcții, module și constante au fost mutate din spațiul de nume principal „np”, depreciate sau eliminate.
S-a curățat spațiul de nume np.lib. Numărul de obiecte din spațiul de nume principal a fost redus cu 10%, iar în spațiul de nume numpy.lib cu 80%. Spațiul de nume numpy.core a fost mutat în privat. S-au eliminat unele metode din clasele np.ndarray și np.generic. S-a creat un nou spațiu de nume numpy.stringsf cu operații cu șir.
Noile caracteristici includ suport pentru tipurile float32 și longdouble în toate funcțiile numpy.fft, suport pentru API-ul standard Array în spațiul de nume principal, un nou spațiu de nume și tipuri pentru șiruri de lungime variabilă. Optimizarea performanței a fost realizată folosind bibliotecile Intel x86-simd-sort și Google Highway pentru funcțiile de tip șir sort, argsort, partition și argpartition, operațiunile cu șiruri fixe în modulul numpy.char au fost accelerate. A fost adăugat un nou API
opt_func_info pentru urmărire și introspecție.
Sursa: opennet.ru
