Išleista NumPy Scientific Computing Python Library 2.0.0

Yra „Python“ bibliotekos leidimas moksliniam skaičiavimui „NumPy 2.0.0“, skirtas darbui su daugiamačiais masyvais ir matricomis, taip pat suteikiant didelį funkcijų rinkinį, įgyvendinant įvairius su matricų naudojimu susijusius algoritmus. NumPy yra viena iš populiariausių bibliotekų, naudojamų moksliniams skaičiavimams. Projekto kodas parašytas Python, naudojant optimizavimą C ir platinamas pagal BSD licenciją.

NumPy 2.0.0 yra pirmasis reikšmingas leidimas nuo 2006 m.
Naujojoje versijoje, be naujų funkcijų ir našumo optimizavimo, buvo atlikti ABI, Python API ir C-API pakeitimai, kurie pažeidžia atgalinį suderinamumą. Pavyzdžiui, „SciPy“ biblioteką, sudarytą naudojant „NumPy 1.x“, reikės iš naujo kompiliuoti, kad ji veiktų su „NumPy 2.0“. Kai kuriais atvejais gali tekti pakeisti kodą, kad programose būtų galima naudoti NumPy 2.0.

Svarbiausia klaida susijusi su skaliarinių išraiškų tikslumo išsaugojimu, pavyzdžiui, „np.float32(3) + 3“ dabar grąžins float32 tipo reikšmę, o ne float64 tipo reikšmę, o išraiškose su keliais tipais rezultatui bus naudojamas tipas su didžiausiu tikslumu, t. y. „np.array([3], dtype=np.float32) + np.float64(3)“ grąžins float64 tipo reikšmę. Platformoje naudojami numatytieji sveikųjų skaičių tipai buvo pakeisti. Windows — 64 bitų sistemose dabar naudojamas 64 bitų sveikųjų skaičių tipas, o 32 bitų sistemose – 32 bitų tipas (anksčiau buvo naudojamas C tipo analoginis „long“, bet dabar – atitikmuo „np.intp“).

Kai kurie C-API apibrėžimai buvo pakeisti arba pašalinti, pavyzdžiui, buvo pakeista PyArray_Descr struktūra. Maksimalus matmenų ir argumentų skaičius, nustatytas naudojant makrokomandas NPY_MAXDIMS ir NPY_MAXARGS, padidintas iki 64. Visi sudėtingi tipai buvo perjungti prie standartinių tipų iš C99 specifikacijos (cfloat_t, cdouble_t, clongdouble_t). Pridėta nauja C API tinkintų dtypes kūrimui. Buvo pasiūlytos naujos supaprastintos inicijavimo funkcijos PyArray_ImportNumPyAPI ir PyUFunc_ImportUFuncAPI.

Python API suteikia aiškesnį viešųjų ir privačių API atskyrimą ir pristato naują modulio struktūrą. Apie 100 funkcijų, modulių ir konstantų buvo perkelta iš pagrindinės „np“ vardų erdvės, nebenaudojama arba pašalinta.
Išvalyta np.lib vardų sritis. Objektų skaičius pagrindinėje vardų srityje sumažintas 10%, o vardų srityje numpy.lib – 80%. Numpy.core vardų sritis buvo perkelta į privačią. Pašalinti kai kurie metodai iš np.ndarray ir np.generic klasių. Sukurta nauja vardų sritis numpy.stringsf su eilutės operacijomis.

Naujos funkcijos apima float32 ir longdouble tipų palaikymą visose numpy.fft funkcijose, standartinės Array API palaikymą pagrindinėje vardų srityje, naują vardų sritį ir kintamo ilgio eilučių tipus. Našumo optimizavimas atliktas naudojant Intel x86-simd-sort ir Google Highway bibliotekas eilučių funkcijoms sort, argsort, partition ir argpartition, paspartintos operacijos su fiksuotomis eilutėmis numpy.char modulyje. Pridėta nauja API
opt_func_info sekimui ir savistabai.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster