Izdaja Python knjižnice za znanstveno računalništvo NumPy 2.0.0

Izdan je Python biblioteku za naučne proračune NumPy 2.0.0, usmerenu na rad sa višedimenzionalnim nizovima i matricama, kao i sa velikom kolekcijom funkcija za realizaciju raznih algoritama vezanih za korišćenje matrica. NumPy je jedna od najtraženijih biblioteka koja se koristi za naučne proračune. Kod projekta je napisan u Python-u uz optimizacije na jeziku C i distribuira se pod BSD licencom.

NumPy 2.0.0 je označen kao prvi značajni izdanje od 2006. godine.
U novoj verziji, osim novih mogućnosti i optimizacije performansi, došlo je do promena u ABI, Python API i C-API, što narušava unazadnu kompatibilnost. Na primer, biblioteka SciPy koja je sastavljena sa NumPy 1.x za rad sa NumPy 2.0 će zahtevati ponovnu kompilaciju. U pojedinim slučajevima, za korišćenje NumPy 2.0 u aplikacijama može biti potrebna modifikacija koda.

Najveće kršenje odnosi se na očuvanje tačnosti skalarnih izraza, na primer, "np.float32(3) + 3" sada će vratiti vrednost sa tipom float32, a ne float64, dok će za izraze sa više tipova biti korišćen tip sa najvećom preciznošću, tj. "np.array([3], dtype=np.float32) + np.float64(3)" će vratiti vrednost sa tipom float64. Promenjeni su celobrojni tipovi koji se podrazumevano koriste na Windows platformi - na 64-bitnim sistemima sada se koristi 64-bitni celobrojni tip, dok se na 32-bitnim koristi 32-bitni (ranije je korišćen analog tipa long, a sada ekvivalent np.intp).

Neka definicije u C-API su zamenjene ili uklonjene, na primer, promenjena je struktura PyArray_Descr. Maksimalan broj dimenzija i argumenata, postavljenih putem makroa NPY_MAXDIMS i NPY_MAXARGS, povećan je na 64. Svi kompleksni tipovi su prevedeni na korišćenje standardnih tipova iz specifikacije C99 (cfloat_t, cdouble_t, clongdouble_t). Dodan je novi C API za kreiranje sopstvenih dtype. Predložene su nove pojednostavljene funkcije inicijalizacije PyArray_ImportNumPyAPI i PyUFunc_ImportUFuncAPI.

U Python API-u obezbeđeno je jasnije razdvajanje između javnog i privatnog API-a, kao i nova struktura modula. Oko 100 funkcija, modula i konstanti je izvađeno iz glavnog imenskog prostora "np", proglašeno zastarjelim ili uklonjeno.
Čišćen je prostor imena np.lib. Broj objekata u glavnom prostoru imena smanjen je za 10%, a u prostoru imena numpy.lib — za 80%. Prebačeno je u privatne prostore imena numpy.core. Neki metodi su uklonjeni iz klasa np.ndarray i np.generic. Kreiran je novi prostor imena numpy.stringsf sa string operacijama.

Među novim mogućnostima ističe se podrška za tipove float32 i longdouble u svim funkcijama numpy.fft, podrška za standardni API Niz u glavnom prostoru imena, novo ime prostora i tipovi za varijabilne stringove. Optimizacija performansi izvršena je upotrebom Intel x86-simd-sort i Google Highway biblioteka za funkcije sortiranja stringova, argsort, partition i argpartition, ubrzane su operacije sa fiksnim stringovima u modulu numpy.char. Dodan je novi API
opt_func_info za praćenje i introspekciju.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster