Contenido del curso

NumPy

Pandas

Atributos, dtypes y estadística en arrays NumPy

Resumen

Los arrays de NumPy son una de las estructuras más usadas en Python para representar imágenes, sonidos y datos científicos. Aprenderás qué los hace tan eficientes, cómo revisar sus dimensiones y tipos de datos, y cómo aplicar estadística básica directamente sobre ellos. Es contenido pensado para quien empieza con análisis de datos, machine learning o bioinformática.

¿Qué es un array de NumPy y por qué supera a las listas?

Un array de NumPy es una estructura de datos homogénea organizada en una o más dimensiones, pensada para cálculos matemáticos rápidos en Python. A diferencia de las listas, consume menos memoria y ejecuta operaciones de forma más eficiente, lo que lo vuelve ideal para inteligencia artificial, bioinformática y física.

Además, NumPy ofrece funciones matemáticas y estadísticas avanzadas listas para usar. Y como cada array es una instancia de una clase, puedes acceder a sus atributos para inspeccionarlo.

¿Por qué un array de NumPy es más rápido que una lista? Porque almacena datos del mismo tipo en bloques contiguos de memoria, lo que permite operaciones vectorizadas sin recorrer elemento por elemento como en una lista de Python.

¿Cómo crear un array y leer sus atributos clave?

Para crear un array simple usas np.array([[1,2,3],[4,5,6]]). Una vez creado, puedes consultar tres atributos esenciales que te dicen todo lo que necesitas saber sobre su forma [01:13]:

  • ndim: número de dimensiones del array. Un truco práctico es contar los corchetes al inicio o al final.
  • shape: tamaño en cada dimensión. Para el ejemplo anterior, devuelve (2, 3), es decir, dos vectores de tres elementos cada uno.
  • dtype: tipo de dato de los elementos. En este caso, int64.

¿Qué representa el shape en un array bidimensional?

Un shape (2, 3) significa que tienes dos filas y tres columnas. Es la forma más rápida de saber si tu estructura coincide con lo que esperas antes de operar con ella.

¿Qué tipos de datos (dtype) maneja NumPy y cuándo usar cada uno?

El dtype es un objeto de NumPy que describe qué tipo de elementos viven dentro del array: entero, flotante, booleano, junto con su tamaño en bits [02:30]. Elegir el correcto te ahorra memoria y evita errores de precisión.

Los tres tipos más comunes que aparecen en la clase son:

  • uint8: entero sin signo de 8 bits, con valores entre 0 y 255. Perfecto para colores de imagen, donde cada canal va justamente en ese rango.
  • float32: número de punto flotante de 32 bits. Útil en cálculos científicos que requieren precisión moderada y ahorro de memoria.
  • float64: número de punto flotante de 64 bits. Es el tipo por defecto de NumPy para decimales y ofrece mayor precisión que float32.

¿Cómo especifico el dtype al crear un array?

Lo defines como argumento al construir el array. Por ejemplo, z = np.array(3, dtype=np.uint8) crea un escalar de tipo uint8, mientras que double_array = np.array([1,2,3], dtype=np.float64) convierte enteros a flotantes [04:23]. Notarás que el 1 se imprime como 1., indicando que el cero decimal está implícito.

¿Cómo convertir el tipo de dato de un array existente?

NumPy permite cambiar el dtype sobre la marcha con el método astype. Por ejemplo, si tu variable z está en uint8 y necesitas decimales, puedes hacer z = z.astype(np.float64) y el valor 3 pasará a representarse como 3. con su decimal incluido.

Esta conversión es común cuando recibes datos en formato compacto, como imágenes en uint8, y necesitas operarlos con precisión flotante para cálculos posteriores.

¿Cuándo usar astype en NumPy? Cuando necesitas cambiar la precisión o el rango de tus datos sin recrear el array completo, por ejemplo, al pasar de enteros a flotantes para dividir sin perder decimales.

¿Cómo aplicar estadística básica con NumPy?

Una de las grandes ventajas de NumPy es que la estadística viene incluida. Sobre el array [[1,2,3],[4,5,6]] puedes calcular tres medidas fundamentales con una sola línea cada una [06:11]:

  1. Suma con np.sum(array): devuelve 21, el total de todos los elementos.
  2. Media con np.mean(array): devuelve 3.5, el promedio aritmético.
  3. Desviación estándar con np.std(array): devuelve aproximadamente 1.70, que mide cuánto se dispersan los valores respecto a la media.

Estas funciones operan sobre todos los elementos por defecto, pero también puedes aplicarlas por filas o columnas indicando un eje. Si quieres profundizar en la teoría detrás de la media y la desviación, el curso de estadística en Platzi complementa muy bien esta parte práctica.

python import numpy as np

array = np.array([[1,2,3],[4,5,6]]) print(np.sum(array)) # 21 print(np.mean(array)) # 3.5 print(np.std(array)) # 1.7078...

Ahora te dejo la pregunta abierta: ¿cuál crees que es la principal diferencia entre usar listas y usar arrays de NumPy en tus proyectos? Te leo en los comentarios.