Hi ha disponible una versió de la biblioteca Python per a la computació científica NumPy 2.0.0, centrada en treballar amb matrius i matrius multidimensionals, i també proporciona una gran col·lecció de funcions amb la implementació de diversos algorismes relacionats amb l'ús de matrius. NumPy és una de les biblioteques més populars utilitzades per als càlculs científics. El codi del projecte està escrit en Python mitjançant optimitzacions en C i es distribueix sota la llicència BSD.
NumPy 2.0.0 és la primera versió significativa des del 2006.
A la nova versió, a més de noves funcions i optimitzacions de rendiment, s'han fet canvis a l'ABI, l'API de Python i la C-API, que infringeixen la compatibilitat enrere. Per exemple, la biblioteca SciPy compilada amb NumPy 1.x requerirà una recompilació per funcionar amb NumPy 2.0. En alguns casos, es poden requerir canvis de codi per utilitzar NumPy 2.0 a les aplicacions.
L'error més significatiu està relacionat amb la preservació de la precisió de les expressions escalars, per exemple, "np.float32(3) + 3" ara retornarà un valor de tipus float32, no float64, i en expressions amb diversos tipus, s'utilitzarà el tipus amb la precisió més alta per al resultat, és a dir, "np.array([3], dtype=np.float32) + np.float64(3)" retornarà un valor de tipus float64. Els tipus enters per defecte utilitzats a la plataforma s'han canviat. Windows — en sistemes de 64 bits, ara s'utilitza un tipus enter de 64 bits, i en sistemes de 32 bits, un tipus de 32 bits (anteriorment s'utilitzava l'anàleg de tipus C long, però ara l'equivalent np.intp).
Algunes definicions de la C-API s'han substituït o eliminat, per exemple, s'ha canviat l'estructura PyArray_Descr. El nombre màxim de dimensions i arguments establerts mitjançant les macros NPY_MAXDIMS i NPY_MAXARGS s'ha augmentat a 64. Tots els tipus complexos s'han canviat a utilitzar tipus estàndard de l'especificació C99 (cfloat_t, cdouble_t, clongdouble_t). S'ha afegit una nova API C per crear tipus de d'personalitzats. S'han proposat noves funcions d'inicialització simplificades PyArray_ImportNumPyAPI i PyUFunc_ImportUFuncAPI.
L'API de Python proporciona una separació més explícita entre les API públiques i privades i introdueix una nova estructura de mòduls. Al voltant de 100 funcions, mòduls i constants s'han mogut de l'espai de noms "np" principal, s'han obsolet o s'han eliminat.
S'ha netejat l'espai de noms np.lib. El nombre d'objectes a l'espai de noms principal s'ha reduït un 10% i a l'espai de noms numpy.lib un 80%. L'espai de noms numpy.core s'ha mogut a privat. S'han eliminat alguns mètodes de les classes np.ndarray i np.generic. S'ha creat un nou espai de noms numpy.stringsf amb operacions de cadena.
Les noves característiques inclouen suport per als tipus float32 i longdouble en totes les funcions numpy.fft, suport per a l'API Array estàndard a l'espai de noms principal, un nou espai de noms i tipus per a cadenes de longitud variable. L'optimització del rendiment s'ha dut a terme mitjançant les biblioteques Intel x86-simd-sort i Google Highway per a les funcions de cadena sort, argsort, partition i argpartition, s'han accelerat les operacions amb cadenes fixes al mòdul numpy.char. S'ha afegit una nova API
opt_func_info per al rastreig i la introspecció.
Font: opennet.ru
