Exploración de tipos de datos de NumPy

Beginner

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, flotante o objeto de 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 dtype y 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: entero
  • b: booleano
  • u: entero sin signo
  • f: flotante
  • c: flotante complejo
  • m: timedelta
  • M: datetime
  • O: objeto
  • S: cadena de texto
  • U: cadena de texto Unicode
  • V: 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.