Saatavilla on Python-kirjaston julkaisu tieteelliseen laskemiseen NumPy 2.0.0, joka keskittyy työskentelyyn moniulotteisten taulukoiden ja matriisien kanssa ja tarjoaa myös suuren kokoelman funktioita erilaisten matriisien käyttöön liittyvien algoritmien toteuttamiseen. NumPy on yksi suosituimmista tieteellisiin laskelmiin käytetyistä kirjastoista. Projektikoodi on kirjoitettu Pythonilla C:n optimointien avulla ja sitä jaetaan BSD-lisenssillä.
NumPy 2.0.0 on ensimmäinen merkittävä julkaisu sitten vuoden 2006.
Uudessa versiossa uusien ominaisuuksien ja suorituskyvyn optimointien lisäksi ABI:hen, Python API:iin ja C-API:hin on tehty muutoksia, jotka loukkaavat taaksepäin yhteensopivuutta. Esimerkiksi NumPy 1.x:llä käännetty SciPy-kirjasto vaatii uudelleenkäännöksen toimiakseen NumPy 2.0:n kanssa. Joissakin tapauksissa koodin muutoksia voidaan vaatia NumPy 2.0:n käyttämiseksi sovelluksissa.
Наиболее крупное нарушение связано с сохранением точности скалярных выражений, например, «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).
Joitakin C-API:n määritelmiä on korvattu tai poistettu, esimerkiksi PyArray_Descr-rakennetta on muutettu. NPY_MAXDIMS- ja NPY_MAXARGS-makrojen kautta asetettujen dimensioiden ja argumenttien enimmäismäärä on nostettu 64:ään. Kaikki kompleksityypit on vaihdettu käyttämään C99-määrittelyn vakiotyyppejä (cfloat_t, cdouble_t, clongdouble_t). Lisätty uusi C-sovellusliittymä mukautettujen dtype-tyyppien luomiseen. Uusia yksinkertaistettuja alustustoimintoja PyArray_ImportNumPyAPI ja PyUFunc_ImportUFuncAPI on ehdotettu.
Python API tarjoaa selkeämmän eron julkisten ja yksityisten API:iden välillä ja esittelee uuden moduulirakenteen. Noin 100 funktiota, moduulia ja vakiota on siirretty pois päänimiavaruudesta "np", vanhentunut tai poistettu.
Puhdistettu np.lib-nimiavaruus. Objektien lukumäärää päänimiavaruudessa on vähennetty 10 % ja nimiavaruudessa numpy.lib 80 %. Numpy.core-nimiavaruus on siirretty yksityiseksi. Poistettiin joitain menetelmiä luokista np.ndarray ja np.generic. Luotiin uusi nimiavaruus numpy.stringsf merkkijonooperaatioilla.
Uusia ominaisuuksia ovat tuki float32- ja longdouble-tyypeille kaikissa numpy.fft-funktioissa, tuki tavalliselle Array API:lle päänimiavaruudessa, uusi nimiavaruus ja tyypit muuttuvapituisille merkkijonoille. Suorituskyvyn optimointi on suoritettu Intel x86-simd-sort- ja Google Highway -kirjastoilla merkkijonofunktioille sort, argsort, partitio ja argpartition, operaatioita kiinteillä merkkijonoilla numpy.char-moduulissa on nopeutettu. Uusi API lisätty
opt_func_info jäljittämistä ja itsetutkiskelua varten.
Lähde: opennet.ru
