Udgivelse af Python-biblioteket til videnskabelige beregninger NumPy 2.0.0

Udgivelsen af Python-biblioteket til videnskabelige beregninger NumPy 2.0.0 er nu tilgængelig, designet til arbejde med multidimensionale arrays og matricer samt at tilbyde en stor samling af funktioner, som implementerer forskellige algoritmer relateret til brugen af matricer. NumPy er et af de mest efterspurgte biblioteker brugt til videnskabelige beregninger. Projektkoden er skrevet på Python med optimeringer i C og distribueres under BSD-licensen.

NumPy 2.0.0 markeres som den første betydelige udgivelse siden 2006.
I den nye version er der ud over nye funktioner og ydeevneoptimering også blevet ændringer i ABI, Python API og C-API, som bryder bagudkompatibiliteten. For eksempel vil SciPy-biblioteket samlet med NumPy 1.x til brug med NumPy 2.0 kræve en recompilering. I nogle tilfælde kan det være nødvendigt at ændre koden for at bruge NumPy 2.0 i applikationer.

Det største brud er relateret til bevarelsen af præcisionen i skalarudtryk, for eksempel vil "np.float32(3) + 3" nu returnere en værdi med typen float32 i stedet for float64, mens der i udtryk med flere typer vil blive anvendt den type med den højeste præcision, det vil sige "np.array([3], dtype=np.float32) + np.float64(3)" vil returnere en værdi med typen float64. De heltals typer, der anvendes som standard på Windows-platformen, er ændret - på 64-bit systemer anvendes nu en 64-bit heltalstype, mens der på 32-bit systemer anvendes en 32-bit type (tidligere blev en C-typelignende long anvendt, men nu er den lig med np.intp).

Nogle definitioner i C-API er blevet ændret eller fjernet, for eksempel er strukturen PyArray_Descr ændret. Det maksimale antal dimensioner og argumenter, der angives via makroerne NPY_MAXDIMS og NPY_MAXARGS, er blevet forhøjet til 64. Alle komplekse typer er ændret til at bruge standardtyper fra C99-specifikationen (cfloat_t, cdouble_t, clongdouble_t). Ny C API tilføjet for at skabe egne dtype. Nye forenklede init-funktioner er blevet foreslået PyArray_ImportNumPyAPI og PyUFunc_ImportUFuncAPI.

I Python API er der sikret en klarere opdeling mellem offentlige og private API'er, og en ny modulstruktur er blevet foreslået. Omtrent 100 funktioner, moduler og konstanter er blevet udskilt fra det primære namespace "np", erklæret forældede eller fjernet.
Renset navneområdet np.lib. Antallet af objekter i hovednavneområdet er reduceret med 10%, og i navneområdet numpy.lib med 80%. Flyttet til private navneområder numpy.core. Nogle metoder fra klasserne np.ndarray og np.generic er blevet fjernet. Et nyt navneområde numpy.stringsf med strengoperationer er oprettet.

Blandt de nye funktioner kan nævnes understøttelse af typerne float32 og longdouble i alle numpy.fft-funktioner, støtte for standard API Array i hovednavneområdet, et nyt navneområde og typer til strenge af variabel længde. Ydelsesoptimering er udført ved brug af Intel x86-simd-sort og Google Highway biblioteker til strengfunktionerne sort, argsort, partition og argpartition, hvilket fremskynder operationer med faste strenge i modulet numpy.char. En ny API er tilføjet.
opt_func_info til sporing og introspektion.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster