Lanzamiento de la biblioteca Python para cálculos científicos NumPy 2.0.0

Se ha lanzado la versión 2.0.0 de la biblioteca de Python para cálculos científicos NumPy, diseñada para trabajar con matrices multidimensionales y que ofrece una amplia colección de funciones con la implementación de diversos algoritmos relacionados con el uso de matrices. NumPy es una de las bibliotecas más demandadas en cálculos científicos. El código del proyecto está escrito en Python con optimizaciones en C y se distribuye bajo la licencia BSD.

NumPy 2.0.0 se marca como el primer lanzamiento significativo desde 2006.
En la nueva versión, además de las nuevas funcionalidades y la optimización del rendimiento, se han realizado cambios en la ABI, API de Python y C-API, que rompen la compatibilidad hacia atrás. Por ejemplo, la biblioteca SciPy compilada con NumPy 1.x para trabajar con NumPy 2.0 requerirá recompilación. En algunos casos, para usar NumPy 2.0 en aplicaciones, puede ser necesario modificar el código.

La infracción más significativa está relacionada con la conservación de la precisión en expresiones escalares, por ejemplo, 'np.float32(3) + 3' ahora devolverá un valor con tipo float32 en lugar de float64, y en expresiones con múltiples tipos se utilizará el tipo de mayor precisión para el resultado, es decir, 'np.array([3], dtype=np.float32) + np.float64(3)' devolverá un valor con tipo float64. Se han cambiado los tipos enteros utilizados por defecto en la plataforma Windows: en sistemas de 64 bits se usa un tipo entero de 64 bits y en 32 bits, un tipo entero de 32 bits (anteriormente se utilizaba una referencia al tipo long de C, ahora es equivalente a np.intp).

Se han reemplazado o eliminado algunas definiciones en C-API, por ejemplo, se ha cambiado la estructura de PyArray_Descr. El número máximo de dimensiones y argumentos, establecido a través de los macros NPY_MAXDIMS y NPY_MAXARGS, se ha incrementado a 64. Todos los tipos complejos se han trasladado a utilizar tipos estándar de la especificación C99 (cfloat_t, cdouble_t, clongdouble_t). Se ha añadido una nueva C API para crear tipos de dato personalizados. Se han propuesto nuevas funciones de inicialización simplificadas PyArray_ImportNumPyAPI y PyUFunc_ImportUFuncAPI.

En la API de Python se ha proporcionado una separación más clara entre las API públicas y privadas, y se ha propuesto una nueva estructura de módulos. Aproximadamente 100 funciones, módulos y constantes han sido retirados del espacio de nombres principal 'np', declarados obsoletos o eliminados.
Se ha limpiado el espacio de nombres np.lib. El número de objetos en el espacio de nombres principal se ha reducido en un 10%, y en el espacio de nombres numpy.lib, en un 80%. Se ha convertido en un espacio de nombres privado numpy.core. Se han eliminado algunos métodos de las clases np.ndarray y np.generic. Se ha creado un nuevo espacio de nombres numpy.stringsf con operaciones sobre cadenas.

Entre las nuevas características se destacan el soporte para los tipos float32 y longdouble en todas las funciones numpy.fft, soporte para la API estándar Array en el espacio de nombres principal, un nuevo espacio de nombres y tipos para cadenas de longitud variable. Se ha optimizado el rendimiento utilizando las bibliotecas Intel x86-simd-sort y Google Highway para las funciones de cadena sort, argsort, partition y argpartition, y se han acelerado las operaciones con cadenas fijas en el módulo numpy.char. Se ha añadido una nueva API
opt_func_info para rastreo e introspección.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster