Tipos de datos numéricos
Tipos de datos en Python
Por defecto, Python tiene estos tipos de datos:
strings
- utilizado para representar datos de texto, el texto se da entre comillas. por ejemplo, "ABCD"integer
- se utiliza para representar números enteros. por ejemplo -1, -2, -3float
- se utiliza para representar números reales. por ejemplo, 1.2, 42.42boolean
- utilizado para representar Verdadero o Falso.complex
- se utiliza para representar números complejos. por ejemplo, 1,0 + 2,0j, 1,5 + 2,5j
Tipos de datos en NumPy
NumPy tiene algunos tipos de datos adicionales y se refiere a tipos de datos con un carácter, como i
enteros, u
enteros sin signo, etc.
A continuación se muestra una lista de todos los tipos de datos en NumPy y los caracteres utilizados para representarlos.
i
- enterob
- booleanou
- entero sin signof
- flotarc
- flotador complejom
- timedeltaM
- fecha y horaO
- objetoS
- cuerdaU
- cadena unicodeV
- fragmento fijo de memoria para otro tipo (vacío)
Comprobación del tipo de datos de una matriz
El objeto de matriz NumPy tiene una propiedad llamada dtype
que devuelve el tipo de datos de la matriz:
Ejemplo
Obtenga el tipo de datos de un objeto de matriz:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
Ejemplo
Obtenga el tipo de datos de una matriz que contiene cadenas:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Creación de matrices con un tipo de datos definido
Usamos la array()
función para crear matrices, esta función puede tomar un argumento opcional: dtype
que nos permite definir el tipo de datos esperado de los elementos de la matriz:
Ejemplo
Cree una matriz con una cadena de tipo de datos:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
Para i
, u
, f
y
S
también U
podemos definir el tamaño.
Ejemplo
Cree una matriz con un tipo de datos entero de 4 bytes:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
¿Qué pasa si un valor no se puede convertir?
Si se proporciona un tipo en el que los elementos no se pueden convertir, NumPy generará un ValueError.
ValueError: en Python, ValueError se genera cuando el tipo de argumento pasado a una función es inesperado/incorrecto.
Ejemplo
Una cadena no entera como 'a' no se puede convertir a entero (generará un error):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Conversión de tipos de datos en arreglos existentes
La mejor manera de cambiar el tipo de datos de una matriz existente es hacer una copia de la matriz con el astype()
método.
La astype()
función crea una copia de la matriz y le permite especificar el tipo de datos como parámetro.
El tipo de datos se puede especificar usando una cadena, como 'f'
flotante,
'i'
entero, etc. o puede usar el tipo de datos directamente como
float
flotante y int
entero.
Ejemplo
Cambie el tipo de datos de flotante a entero usando 'i'
como valor de parámetro:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)
Ejemplo
Cambie el tipo de datos de flotante a entero usando int
como valor de parámetro:
import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
Ejemplo
Cambie el tipo de datos de entero a booleano:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)