Introducción
Este laboratorio proporciona una guía paso a paso para comprender y gestionar los diversos tipos de datos en NumPy. NumPy (Numerical Python) es una potente biblioteca que ofrece soporte para arrays y matrices grandes y multidimensionales, junto con una colección de funciones matemáticas para operar eficientemente sobre estos arrays. A diferencia de las listas integradas de Python, los arrays de NumPy son más eficientes en el uso de memoria y más rápidos para cálculos numéricos.
Aprenderá a verificar, especificar y convertir los tipos de datos de los arrays de NumPy. Comprender los tipos de datos es crucial porque afectan tanto al uso de memoria como al rendimiento computacional. Toda la codificación se realizará en el archivo main.py utilizando el editor de código, y ejecutará el script desde la terminal. Este enfoque práctico le ayudará a asimilar estos conceptos fundamentales, que son cruciales para la computación numérica y el análisis de datos.
Verificando el Tipo de Dato de un Array
Cuando creas un array de NumPy, NumPy infiere automáticamente el tipo de datos más adecuado para sus elementos. Puedes comprobar fácilmente este tipo de datos inferido utilizando el atributo dtype del array.
El atributo dtype te indica qué tipo de datos contiene el array (como enteros, números de punto flotante, etc.) y cuánta memoria utiliza cada elemento. Esta información es importante para comprender cómo NumPy manejará las operaciones matemáticas en tus datos.
Primero, abre el archivo main.py desde el explorador de archivos de la izquierda. Añadiremos código para crear un array simple y luego imprimiremos su tipo de datos.
Añade el siguiente código a main.py:
## Create a NumPy array from a list of integers
## np.array() converts a Python list into a NumPy array
arr_int = np.array([1, 2, 3, 4, 5])
## Print the data type of the array
## .dtype shows the data type of array elements
print("Data type of arr_int:", arr_int.dtype)
Ahora, guarda el archivo y ejecútalo desde la terminal para ver la salida.
python main.py
Verás el tipo de datos del array impreso en la consola. El tipo de entero específico (como int64) depende de la arquitectura de tu sistema.
Data type of arr_int: int64
Esto confirma que NumPy identificó correctamente los elementos como enteros.
Especificando un Tipo de Dato al Crear
Si bien la inferencia automática de tipos de NumPy es útil, a menudo necesitas definir explícitamente el tipo de datos de un array para mayor eficiencia de memoria o para cumplir con los requisitos de un cálculo específico. Puedes hacer esto utilizando el argumento dtype durante la creación del array.
Los diferentes tipos de datos utilizan diferentes cantidades de memoria:
int32utiliza 4 bytes por elementoint64utiliza 8 bytes por elementofloat32utiliza 4 bytes por elementofloat64utiliza 8 bytes por elemento
Para arrays grandes, elegir el tipo de datos correcto puede ahorrar una cantidad significativa de memoria y potencialmente mejorar el rendimiento.
Creemos un array y especifiquemos su tipo de datos como un flotante de 32 bits. Modifica tu archivo main.py con el siguiente código. Puedes comentar o eliminar el código del paso anterior.
## Create an array and specify the data type as float32
## The dtype parameter tells NumPy to store each number as a 32-bit float
arr_float = np.array([1.0, 2.5, 3.8], dtype=np.float32)
## Print the data type and the array
print("Data type of arr_float:", arr_float.dtype)
print("Array arr_float:", arr_float)
Guarda el archivo y ejecútalo de nuevo.
python main.py
La salida mostrará que el array se ha creado con el tipo de datos float32 que especificaste.
Data type of arr_float: float32
Array arr_float: [1. 2.5 3.8]
Puedes usar varias cadenas de tipos de datos u objetos de NumPy, como 'f4' para float32, 'i8' para int64, o np.bool_ para booleanos.
Convirtiendo el Tipo de Dato de un Array
Después de crear un array, es posible que necesites convertir su tipo de datos. El método .astype() se utiliza para este propósito. Este método no cambia el array original, sino que devuelve un nuevo array con el tipo de datos especificado.
La conversión de tipos es útil cuando necesitas:
- Realizar operaciones que requieren un tipo de datos específico
- Reducir el uso de memoria convirtiendo a tipos más pequeños
- Preparar datos para funciones que esperan ciertos tipos
Creemos un array de enteros y luego lo convertiremos a un array de punto flotante. Actualiza tu archivo main.py con el siguiente código:
## Create an integer array
## np.arange(5) creates an array with numbers from 0 to 4 (5 elements total)
original_arr = np.arange(5)
print("Original array:", original_arr)
print("Original dtype:", original_arr.dtype)
## Convert the array to float64
## .astype() creates a new array with the specified data type
converted_arr = original_arr.astype(np.float64)
print("Converted array:", converted_arr)
print("Converted dtype:", converted_arr.dtype)
Guarda el archivo y ejecútalo.
python main.py
La salida demuestra que original_arr sigue siendo un array de enteros, mientras que converted_arr es un nuevo array con el tipo de datos float64.
Original array: [0 1 2 3 4]
Original dtype: int64
Converted array: [0. 1. 2. 3. 4.]
Converted dtype: float64
Esta es una forma segura de realizar conversiones de tipos sin perder tus datos originales.
Trabajando con Otros Tipos de Datos
NumPy soporta una amplia gama de tipos de datos más allá de solo enteros y flotantes, incluyendo booleanos y números complejos. Comprender cómo NumPy maneja estos puede ser muy útil.
Los arrays booleanos son particularmente útiles para:
- Filtrar datos (seleccionar elementos que cumplen ciertas condiciones)
- Operaciones lógicas
- Enmascarar arrays
Por ejemplo, puedes crear un array de valores booleanos que representen condiciones Verdadero/Falso.
Creemos un array booleano. Actualiza tu archivo main.py:
## Create a boolean array
## np.bool_ is NumPy's boolean data type (stores True/False values)
arr_bool = np.array([True, False, True], dtype=np.bool_)
print("Boolean array:", arr_bool)
print("Boolean array dtype:", arr_bool.dtype)
Guarda y ejecuta el script.
python main.py
La salida mostrará el array booleano y su tipo de datos correspondiente.
Boolean array: [ True False True]
Boolean array dtype: bool
También puedes verificar si un tipo de datos pertenece a una categoría general (como entero o de punto flotante) utilizando la función np.issubdtype(). Esto es útil para escribir funciones que puedan manejar múltiples tipos numéricos.
Resumen
En este laboratorio, has aprendido los fundamentos del trabajo con tipos de datos en NumPy. Ahora entiendes:
- Qué son los arrays de NumPy y por qué son más eficientes que las listas de Python
- Cómo crear arrays usando
np.array()ynp.arange() - Cómo verificar el tipo de datos de un array usando el atributo
.dtype - Cómo especificar un tipo de datos durante la creación de un array con el parámetro
dtype - Cómo convertir el tipo de datos de un array usando el método
.astype() - Las implicaciones de memoria de los diferentes tipos de datos (int32, int64, float32, float64)
- Cómo trabajar con arrays booleanos para filtrado y operaciones lógicas
Una comprensión sólida de los tipos de datos es esencial para escribir código numérico eficiente y preciso con NumPy. Elegir el tipo de datos correcto puede impactar significativamente tanto el uso de memoria como el rendimiento computacional en tus proyectos de análisis de datos.



