Introducción
En este laboratorio, cubriremos los tipos de datos en la biblioteca NumPy de Python. Revisaremos la sintaxis del objeto dtype y sus parámetros.
Consejos sobre la VM
Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargar. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y resolveremos el problema para usted de inmediato.
Comprendiendo el objeto dtype de NumPy
En NumPy, todos los elementos de una matriz son objetos de tipo de datos, también conocidos como dtypes de NumPy. El objeto de tipo de datos se utiliza para implementar el tamaño fijo de la memoria correspondiente a una matriz.
Principalmente nos proporciona información sobre lo siguiente:
- El tipo de datos (por ejemplo,
entero,flotanteoobjetode Python) - El tamaño de los datos
- El orden de los bytes (little-endian o big-endian)
- En el caso del tipo estructurado, nos dice sobre los nombres de los campos, el tipo de datos de cada campo y la parte del bloque de memoria ocupada por cada campo.
- En el caso de que el tipo de datos sea una submatriz, nos dice sobre su forma y tipo de datos
Creando un objeto dtype de NumPy
A continuación se muestra la sintaxis necesaria para crear el objeto dtype:
numpy.dtype(object, align, copy)
A continuación se describe los argumentos del constructor mencionado anteriormente:
- object: Este argumento se utiliza para representar el objeto que se convertirá al tipo de datos.
- align: Es un argumento opcional. Se utiliza para agregar relleno a los campos para que coincida con lo que un compilador C emitiría para una estructura C similar. Este argumento se puede establecer en cualquier valor booleano.
- copy: Este argumento se utiliza para crear una copia del objeto
dtypey también es un argumento opcional.
Tipos de datos numéricos en NumPy
La biblioteca NumPy principalmente proporciona una gama más amplia de tipos de datos numéricos que la proporcionada por Python. La lista de tipos de datos numéricos se presenta en la tabla siguiente:
| SN | Tipo de datos | Descripción |
|---|---|---|
| 1 | bool_ |
Se utiliza para representar el valor booleano que indica verdadero o falso. Se almacena como un byte. |
| 2 | int_ |
Este es el tipo predeterminado de un entero. Es idéntico al tipo largo en C que generalmente contiene un entero de 64 bits o 32 bits. |
| 3 | intc |
Este es similar al entero de C (C int) ya que representa un int de 32 o 64 bits. |
| 4 | intp |
Se utiliza para representar los enteros que se utilizan para la indexación. |
| 5 | int8 |
Este es el entero de 8 bits idéntico a un byte. El rango de valores es de -128 a 127. |
| 6 | int16 |
Este es el entero de 2 bytes (16 bits) y el rango es de -32768 a 32767. |
| 7 | int32 |
Este es el entero de 4 bytes (32 bits). El rango es de -2147483648 a 2147483647. |
| 8 | int64 |
Este es el entero de 8 bytes (64 bits) y el rango es de -9223372036854775808 a 9223372036854775807. |
| 9 | uint8 |
Este es un entero sin signo de 1 byte (8 bits). |
| 10 | uint16 |
Este es un entero sin signo de 2 bytes (16 bits). |
| 11 | uint32 |
Este es un entero sin signo de 4 bytes (32 bits). |
| 12 | uint64 |
Este es un entero sin signo de 8 bytes (64 bits). |
| 13 | float_ |
Esto es idéntico a float64. |
| 14 | float16 |
Se utiliza para representar el flotante de media precisión. 5 bits se reservan para el exponente. 10 bits se reservan para la mantisa y 1 bit se reserva para el signo. |
| 15 | float32 |
Se utiliza para representar el flotante de precisión simple. 8 bits se reservan para el exponente, 23 bits se reservan para la mantisa y 1 bit se reserva para el signo. |
| 16 | float64 |
Se utiliza para representar el flotante de doble precisión. 11 bits se reservan para el exponente, 52 bits se reservan para la mantisa y 1 bit se utiliza para el signo. |
| 17 | complex_ |
Esto es idéntico a complex128. |
| 18 | complex64 |
Se utiliza para representar el número complejo donde la parte real e imaginaria comparten 32 bits cada una. |
| 19 | complex128 |
Se utiliza para representar el número complejo donde la parte real e imaginaria comparten 64 bits cada una. |
Caracteres utilizados para representar dtype en NumPy
A continuación se presenta la lista de caracteres que se utilizan para representar dtype en NumPy:
i: enterob: booleanou: entero sin signof: flotantec: flotante complejom: timedeltaM: datetimeO: objetoS: cadena de textoU: cadena de texto UnicodeV: trozo fijo de memoria para otros tipos (void)
Ejemplos
Ejemplo 1: Encontrar el tipo de datos de una matriz
Intentaremos descubrir el tipo de datos de la matriz que contiene cadenas:
import numpy as np
ar1 = np.array(['silla', 'libro', 'cuaderno'])
print(ar1.dtype)
Salida:
<U8
Ejemplo 2: Construir un objeto dtype
Podemos crear un objeto dtype utilizando la función numpy.dtype.
import numpy as np
dt1 = np.dtype(np.int64)
print (dt1)
Salida:
int64
Ejemplo 3: Usar la representación más corta de los tipos de datos numéricos
En el siguiente ejemplo, usaremos la representación más corta de los tipos de datos numéricos:
import numpy as np
a = np.dtype('i4')
print (a)
Salida:
int32
Ejemplo 4: Crear un objeto dtype estructurado
Crearemos un tipo de datos estructurado y lo aplicaremos a un objeto ndarray:
import numpy as np
## información con clave y valor
a = np.dtype([('rollno',np.int16)])
print(a)
a = np.array([(101,),(201,),(301,)], dtype=a)
print(a)
Salida:
[('rollno', '<i2')]
[(101,) (201,) (301,)]
Ejemplo 5: Cambiar el tipo de datos
En el siguiente ejemplo, cambiaremos el tipo de datos de float a integer utilizando int como valor del parámetro:
import numpy as np
ar= np.array([1.1, 2.1, 3.1])
newarr = ar.astype(int)
print(newarr)
print(newarr.dtype)
Salida:
[1 2 3]
int64
Resumen
En este laboratorio, cubrimos el concepto de tipos de datos en una matriz. Vimos cómo se utiliza el objeto dtype para especificar el tipo de datos de los valores, su sintaxis y los parámetros requeridos para el objeto dtype. También cubrimos varios tipos de datos numéricos y luego algunos ejemplos para su comprensión.