Apéndice A. NumPy avanzado

En este apéndice, profundizaré en la biblioteca NumPy para el cálculo de matrices. Esto incluirá más detalles internos sobre el tipo ndarray y algoritmos y manipulaciones de arrays más avanzados.

Este apéndice contiene temas diversos y no es necesario leerlo de forma lineal. A lo largo de los capítulos, generaré datos aleatorios para muchos ejemplos que utilizarán el generador de números aleatorios por defecto del módulo numpy.random:

In [11]: rng = np.random.default_rng(seed=12345)

A.1 Internos del objeto ndarray

La función ndarray de NumPy proporciona una forma de interpretar un bloque de datos de tipo homogéneo (contiguos o en cadenas) como un objeto array multidimensional. El tipo de datos, o dtype, determina cómo se interpretan los datos como si fueran de coma flotante, enteros, booleanos o cualquiera de los otros tipos que hemos estado viendo.

Parte de lo que hace flexible a ndarray es que cada objeto array es una vistastrided sobre un bloque de datos. Te preguntarás, por ejemplo, cómo es posible que la vista de array arr[::2, ::-1] no copie ningún dato. La razón es que el ndarray es algo más que un trozo de memoria y un tipo de datos; también tiene información de stridingque permite al array moverse por la memoria con tamaños de paso variables. Más concretamente, la ndarray consta internamente de lo siguiente:

  • Un puntero a datos,es decir, un bloque de datos en RAM o en un archivo mapeado en memoria

  • El tipo de datos o dtype que describe las celdas de valores ...

Get Python para el Análisis de Datos, 3ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.