Release van de Python-bibliotheek voor wetenschappelijke berekeningen NumPy 2.0.0

De release van de Python-bibliotheek voor wetenschappelijke berekeningen, NumPy 2.0.0, is beschikbaar, gericht op het werken met multidimensionale arrays en matrices, en biedt een uitgebreide collectie functies met implementaties van verschillende algoritmen die verband houden met het gebruik van matrices. NumPy is een van de meest gevraagde bibliotheken die wordt toegepast voor wetenschappelijke berekeningen. De code van het project is geschreven in Python met optimalisaties in C en wordt verspreid onder de BSD-licentie.

NumPy 2.0.0 wordt gemarkeerd als de eerste significante release sinds 2006.
In de nieuwe versie zijn naast nieuwe mogelijkheden en prestatieoptimalisaties veranderingen aangebracht in de ABI, Python API en C-API, die de achterwaartse compatibiliteit schenden. Zo vereist een met NumPy 1.x gebouwde SciPy-bibliotheek voor gebruik met NumPy 2.0 een recompilatie. In sommige gevallen kan het nodig zijn om code aan te passen om NumPy 2.0 in applicaties te gebruiken.

De grootste verandering betreft het behoud van de precisie van scalarexpressies, bijvoorbeeld, 'np.float32(3) + 3' retourneert nu een waarde van het type float32 in plaats van float64, en in expressies met meerdere types wordt voor het resultaat het type met de hoogste precisie gebruikt, dat wil zeggen, 'np.array([3], dtype=np.float32) + np.float64(3)' retourneert een waarde van het type float64. De standaard gehele types die op het Windows-platform worden gebruikt, zijn gewijzigd - op 64-bits systemen wordt nu een 64-bits integer type gebruikt, en op 32-bits systemen een 32-bits integer (voorheen werd een type dat overeenkomt met C's long gebruikt, nu is het equivalent np.intp).

Enkele definities in de C-API zijn vervangen of verwijderd, bijvoorbeeld de structuur PyArray_Descr is gewijzigd. Het maximale aantal dimensies en argumenten dat via de macro's NPY_MAXDIMS en NPY_MAXARGS wordt ingesteld, is verhoogd tot 64. Alle complexe types zijn overgezet naar het gebruik van de standaard types uit de C99-specificatie (cfloat_t, cdouble_t, clongdouble_t). Een nieuwe C API voor het creëren van eigen dtype is toegevoegd. Nieuwe vereenvoudigde functies voor initialisatie, PyArray_ImportNumPyAPI en PyUFunc_ImportUFuncAPI, zijn voorgesteld.

In de Python API is er een duidelijker onderscheid aangebracht tussen publieke en private API's, en een nieuwe modulestructuur is voorgesteld. Ongeveer 100 functies, modules en constanten zijn uit de hoofdnamespace 'np' verwijderd, als verouderd gemarkeerd of verwijderd.
De namespace np.lib is opgeschoond. Het aantal objecten in de hoofdnamespace is met 10% verminderd, terwijl dat in de namespace numpy.lib met 80% is verminderd. Sommige namespaces zijn omgezet naar privénamespaces in numpy.core. Bepaalde methoden zijn uit de klassen np.ndarray en np.generic verwijderd. Een nieuwe namespace numpy.stringsf is aangemaakt voor stringbewerkingen.

Onder de nieuwe mogelijkheden zijn onder andere de ondersteuning van de typen float32 en longdouble in alle functies van numpy.fft, ondersteuning van de standaard API Array in de hoofdnamespace, een nieuwe namespace en types voor variabele lengte strings. De prestaties zijn geoptimaliseerd met behulp van de Intel x86-simd-sort en Google Highway bibliotheken voor stringfuncties zoals sort, argsort, partition en argpartition, en de bewerkingen met vaste strings in de module numpy.char zijn versneld. Er is een nieuwe API toegevoegd.
opt_func_info voor tracing en inspectie.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster