Disponible la versión 1.20.0 de NumPy

Publicado el 02 marzo 2021 por Daniel Rodríguez @analyticslane

La versión 1.20.0 se ha liberado recientemente. Versión en la que se incluyen nuevas capacidades como las anotaciones de tipos y expansión del uso de SIMD (single instruction, multiple data). Por lo que se ha descrito como la versión más grande de la historia de la librería.

Novedades de la versión

Las anotaciones de tipo se encuentran disponibles en una amplia parte de la librería. Estando disponible un nuevo módulo numpy.typing en el que se pueden encontrar tipos útiles para los usuarios finales. Entre los que se incluyen ArrayLike, para objetos que se pueden convertir en vectores, y DtypeLike, para objetos que se pueden convertir en un dtype.

Por otro lado, al aumentar el uso de SIMD en NumPy se mejora la velocidad de ejecución de muchas funciones. Además, se han realizado mejoras para preparar el código para introducir en un futuro las optimizaciones de rendimiento de SIMD de NEP-38.

Otras mejoras que se han incluido en la versión 1.20.0 de NumPy son:

  • Preparación para la modificación de los de los objetos dtype (objeto de tipo de datos) e implementación de conversiones para permitir extensión de tipos.
  • Soporte preliminar para la versión 3.0 del Cython para escribir extensiones C en Python.
  • La clase randon.Generator contiene una nueva función permuted.
  • Los errores de indexación se notificarán incluso cuando el resultado del índice esté vacío.
  • Una nueva palabra clave where se ha añadido para evaluar los valores en vectores de tipo Boolean.
  • Los tipos de numpy.typing ahora se pueden importar en tiempo de ejecución.
  • La función sliding_window_view ofrece una vista de ventana deslizante para matrices NumPy.
  • Al crear o asignar matrices, en todos los casos relevantes, los escalares NumPy ahora se convertirán a matrices NumPy
  • Se ha deprecado el uso de alias de tipos integrados, como puede ser el caso de np.int.
  • Las coincidencias inexactas de mode y searchside han sido deprecadas.
  • Se ha realizado limpieza de código relacionadas con la eliminación de Python 2.7 y mejoras en la legibilidad de código.

Las notas de la versión se pueden encontrar en la página web del proyecto con el resto de mejoras que se han introducido en esta versión.

Imagen de Michael Gaida en Pixabay