Tipos de dados NumPy
Tipos de dados em Python
Por padrão, o Python tem esses tipos de dados:
strings
- usado para representar dados de texto, o texto é fornecido entre aspas. por exemplo, "ABCD"integer
- usado para representar números inteiros. por exemplo -1, -2, -3float
- usado para representar números reais. por exemplo, 1,2, 42,42boolean
- usado para representar Verdadeiro ou Falso.complex
- usado para representar números complexos. por exemplo, 1,0 + 2,0j, 1,5 + 2,5j
Tipos de dados no NumPy
NumPy tem alguns tipos de dados extras e refere-se a tipos de dados com um caractere, como i
inteiros, u
inteiros sem sinal, etc.
Abaixo está uma lista de todos os tipos de dados no NumPy e os caracteres usados para representá-los.
i
- inteirob
- boleanou
- inteiro sem sinalf
- flutuarc
- flutuação complexam
- timedeltaM
- data horaO
- objetoS
- cordaU
- seqüência unicodeV
- pedaço fixo de memória para outro tipo (void)
Verificando o tipo de dados de um array
O objeto array NumPy tem uma propriedade chamada dtype
que retorna o tipo de dado do array:
Exemplo
Obtenha o tipo de dados de um objeto de matriz:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr.dtype)
Exemplo
Obtenha o tipo de dados de um array contendo strings:
import numpy as np
arr = np.array(['apple',
'banana', 'cherry'])
print(arr.dtype)
Criando arrays com um tipo de dados definido
Usamos a array()
função para criar arrays, esta função pode receber um argumento opcional: dtype
que nos permite definir o tipo de dado esperado dos elementos do array:
Exemplo
Crie uma matriz com o tipo de dados string:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='S')
print(arr)
print(arr.dtype)
Para i
, u
, f
,
S
e U
podemos definir tamanho também.
Exemplo
Crie um array com tipo de dados inteiro de 4 bytes:
import numpy as np
arr = np.array([1, 2, 3, 4],
dtype='i4')
print(arr)
print(arr.dtype)
E se um valor não puder ser convertido?
Se for fornecido um tipo em que os elementos não podem ser convertidos, o NumPy gerará um ValueError.
ValueError: Em Python, ValueError é gerado quando o tipo de argumento passado para uma função é inesperado/incorreto.
Exemplo
Uma string não inteira como 'a' não pode ser convertida em inteiro (irá gerar um erro):
import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')
Convertendo tipo de dados em arrays existentes
A melhor maneira de alterar o tipo de dados de um array existente é fazer uma cópia do array com o astype()
método.
A astype()
função cria uma cópia da matriz e permite especificar o tipo de dados como um parâmetro.
O tipo de dados pode ser especificado usando uma string, como 'f'
para float,
'i'
para integer etc. ou você pode usar o tipo de dados diretamente como
float
para float e int
integer.
Exemplo
Altere o tipo de dados de float para integer 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)
Exemplo
Altere o tipo de dados de float para integer 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)
Exemplo
Altere o tipo de dados de inteiro para booleano:
import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)