Dimensiones y shape: Comprendiendo las formas de los arrays NumPy
Introducción
En la manipulación de datos, NumPy es una herramienta fundamental para trabajar con estructuras numéricas. Los arrays (Ndarray en inglés) son una parte central de NumPy y forman el núcleo de muchas operaciones en ciencia de datos y machine learning. En esta unidad, profundizaremos en las dimensiones y el shape de los arrays NumPy. Aprender a controlar estas características es crucial para optimizar la eficiencia y el rendimiento del código.
Explicación principal
Los arrays NumPy son estructuras multidimensionales que pueden tener cualquier número de dimensiones, pero en práctica se usan principalmente hasta tres:
- Unidimensional (1D): Similares a listas en Python.
- Bidimensional (2D): Se asocian con tablas o matrices.
- Tridimensional (3D): Útiles para trabajar con datos de volumen, como imágenes 3D.
La propiedad shape nos permite conocer la dimensión exacta del array. Es un tupla que indica el número de elementos en cada dimensión:
import numpy as np
# Crear un array bidimensional (2D)
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("Shape del array 2D:", array_2d.shape) # Output: (2, 3)
# Crear un array tridimensional (3D)
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("Shape del array 3D:", array_3d.shape) # Output: (2, 2, 2)
Ejemplo práctico
Supongamos que estamos trabajando con datos de temperaturas en ciudades diferentes. Podemos representar este conjunto de datos como un array bidimensional:
import numpy as np
# Datos de temperatura en grados Celsius para varias ciudades
temperaturas = np.array([
[25, 30, 28],
[18, 22, 24]
])
print("Temperaturas:")
print(temperaturas)
print("\nShape del array:", temperaturas.shape) # Output: (2, 3)
Errores típicos / trampas
- Mal uso de
.reshape(): La funciónnp.reshape()puede ser útil para cambiar la forma de un array, pero si intentamos reshapear a una dimensión no válida, NumPy lanzará un error.
try:
arr = np.array([1, 2, 3, 4])
print(np.reshape(arr, (5,)))
except ValueError as e:
print(e) # Output: total size of new array must be unchanged
- Confusión entre
reshape()yresize(): Ambas funciones se parecen a primera vista, pero tienen propósitos diferentes.np.reshape()crea una nueva forma del mismo array, mientras quenp.resize()cambia el tamaño del propio array.
- No entender la diferencia entre
shapeysize: Aunque ambos son atributos importantes de un array NumPy,shapedevuelve las dimensiones en una tupla, mientras quesizedevuelve el número total de elementos en el array.
Checklist accionable
Para asegurar que entiendas completamente la forma y shape de los arrays NumPy:
- Crea arrays bidimensionales: Trata de crear un array con diferentes dimensiones (2D, 3D).
- Usa
.shapepara inspeccionar: Asegúrate de entender el output delshapeen cada caso. - Prueba reshape: Intenta cambiar la forma de un array y ve cómo se afectan las dimensiones.
- Revisa errores comunes: Haz ejemplos donde intentas reshapear a formas no válidas o confundas
reshape()conresize(). - Usa
.sizesabiamente: Asegúrate de entender cuándo es útil y cuándo no.
Cierre: Siguientes pasos
Pasos siguientes en tu viaje
- Aprende a manipular arrays multidimensionales: Estudia cómo crear, inspeccionar y modificar arrays bidimensionales y tridimensionales.
- Optimiza tus operaciones: Comprueba si puedes aplicar operaciones vectorizadas más eficientemente utilizando las formas correctas de los arrays.
- Practica con datos reales: Trabaja en proyectos donde debas manipular y transformar datos reales usando NumPy.
Estos conceptos forman la base para manejar eficazmente grandes cantidades de datos, lo que es fundamental tanto en ciencia de datos como en machine learning. ¡Feliz codificación!