Release van Python-bibliotheek voor wetenschappelijk computergebruik NumPy 2.0.0

Er is een release van de Python-bibliotheek voor wetenschappelijk computergebruik NumPy 2.0.0 beschikbaar, gericht op het werken met multidimensionale arrays en matrices, en die ook een grote verzameling functies biedt met de implementatie van verschillende algoritmen die verband houden met het gebruik van matrices. NumPy is een van de meest populaire bibliotheken die worden gebruikt voor wetenschappelijke berekeningen. De projectcode is geschreven in Python met behulp van optimalisaties in C en wordt gedistribueerd onder de BSD-licentie.

NumPy 2.0.0 markeert de eerste belangrijke release sinds 2006.
In de nieuwe versie zijn, naast nieuwe features en prestatie-optimalisaties, wijzigingen aangebracht aan de ABI, Python API en C-API, die de achterwaartse compatibiliteit schenden. De SciPy-bibliotheek die is gecompileerd met NumPy 1.x zal bijvoorbeeld opnieuw moeten worden gecompileerd om met NumPy 2.0 te kunnen werken. In sommige gevallen kunnen codewijzigingen nodig zijn om NumPy 2.0 in toepassingen te gebruiken.

De belangrijkste bug heeft betrekking op het behoud van precisie bij scalaire expressies. Zo retourneert "np.float32(3) + 3" nu een waarde van het type float32 in plaats van float64. Bij expressies met meerdere typen wordt het type met de hoogste precisie gebruikt voor het resultaat, dus "np.array([3], dtype=np.float32) + np.float64(3)" retourneert een waarde van het type float64. De standaard integer-typen die op het platform worden gebruikt, zijn gewijzigd. Windows — Op 64-bits systemen wordt nu een 64-bits integer-type gebruikt, en op 32-bits systemen een 32-bits type (voorheen werd het C-type analogon long gebruikt, maar nu het equivalent np.intp).

Sommige definities in de C-API zijn vervangen of verwijderd, zo is de PyArray_Descr-structuur gewijzigd. Het maximale aantal dimensies en argumenten dat is ingesteld via de macro's NPY_MAXDIMS en NPY_MAXARGS is verhoogd naar 64. Alle complexe typen zijn overgeschakeld naar het gebruik van standaardtypen uit de C99-specificatie (cfloat_t, cdouble_t, clongdouble_t). Nieuwe C API toegevoegd voor het maken van aangepaste dtypes. Er zijn nieuwe vereenvoudigde initialisatiefuncties PyArray_ImportNumPyAPI en PyUFunc_ImportUFuncAPI voorgesteld.

De Python API biedt een explicietere scheiding tussen publieke en private API's en introduceert een nieuwe modulestructuur. Ongeveer 100 functies, modules en constanten zijn uit de hoofdnaamruimte "np" verplaatst, verouderd of verwijderd.
De naamruimte np.lib opgeschoond. Het aantal objecten in de hoofdnaamruimte is met 10% verminderd, en in de numpy.lib-naamruimte met 80%. De numpy.core-naamruimte is verplaatst naar privé. Enkele methoden verwijderd uit de klassen np.ndarray en np.generic. Er is een nieuwe naamruimte numpy.stringsf gemaakt met tekenreeksbewerkingen.

Nieuwe functies zijn onder meer ondersteuning voor float32- en longdouble-typen in alle numpy.fft-functies, ondersteuning voor de standaard Array API in de hoofdnaamruimte, een nieuwe naamruimte en typen voor tekenreeksen met variabele lengte. Prestatie-optimalisatie is uitgevoerd met behulp van de Intel x86-simd-sort en Google Highway-bibliotheken voor de stringfuncties sort, argsort, partition en argpartition, bewerkingen met vaste strings in de numpy.char-module zijn versneld. Nieuwe API toegevoegd
opt_func_info voor tracering en introspectie.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster