Introdução aos tipos de dados NumPy
Um tipo de dados é um atributo associado aos dados que define o tipo de valores que os dados podem conter, o tipo de operações que podem ser executadas nele e, o mais importante, a quantidade de espaço de memória exigida por ele. Alguns dos tipos de dados muito comuns são inteiro, real, booleano e char. Neste artigo, tentaremos entender vários tipos de dados suportados pelo Numpy. Numpy é um pacote python usado para computação científica. É puramente escrito na linguagem de programação C. Portanto, podemos assumir que os tipos de dados no Numpy são mais ou menos uma atualização dos tipos de dados C.
Tipos de dados Numpy
Os vários tipos de dados suportados pelo numpy são:
Tipo de dados Numpy | Tipo de dados C estreitamente associado | Tamanho de armazenamento | Descrição |
np.bool_ | bool | 1 byte | pode conter valores booleanos, como (Verdadeiro ou Falso) ou (0 ou 1) |
np.byte | char assinado | 1 byte | pode conter valores de 0 a 255 |
np.ubyte | caracter não identifcado | 1 byte | pode conter valores de -128 a 127 |
np.short | assinado curto | 2 bytes | pode conter valores de -32.768 a 32.767 |
np.ushort | curto não assinado | 2 bytes | pode conter valores de 0 a 65.535 |
np.uintc | unsigned int | 2 ou 4 bytes | pode conter valores de 0 a 65.535 ou 0 a 4.294.967.295 |
np.int_ | grandes | 8 bytes | pode armazenar valores de -9223372036854775808 a 9223372036854775807 |
np.uint | não assinado por muito tempo | 8 bytes | 0 a 18446744073709551615 |
np.longlong | longo longo | 8 bytes | pode armazenar valores de -9223372036854775808 a 9223372036854775807 |
np.ulonglong | não assinado por muito tempo | 8 bytes | 0 a 18446744073709551615 |
np.half / np.float16 | - | permite precisão de meio flutuador com Formato: bit de sinal, expoente de 5 bits, mantissa de 10 bits |
|
np.single | flutuador | 4 bytes | permite precisão de flutuador único Formato: bit de sinal, expoente de 8 bits, mantissa de 23 bits |
np.double | Duplo | 8 bytes | permite precisão de flutuação dupla Formato: bit de sinal, expoente de 11 bits, mantissa de 52 bits. |
np.longdouble | longo duplo | 8 bytes | extensão de flutuador |
np.csingle | complexo de flutuação | 8 bytes | pode ser complexo com peças reais e imaginárias até flutuador de precisão única |
np.cdouble | complexo duplo | 16 bytes | pode ser complexo com peças reais e imaginárias até flutuador de precisão dupla |
np.clongdouble | complexo duplo longo | 16 bytes | extensão de flutuador para número complexo |
np.int8 | int8_t | 1 byte | pode conter valores de -128 a 127 |
np.int16 | int16_t | 2 bytes | pode conter valores de -32.768 a 32.767 |
np.int32 | int32_t | 4 bytes | pode conter valores de -2.147.483.648 a 2.147.483.647 |
np.int64 | int64_t | 8 bytes | pode armazenar valores de -9223372036854775808 a 9223372036854775807 |
np.uint8 | uint8_t | 1 byte | pode conter valores de 0 a 255 |
np.uint16 | uint16_t | 2 bytes | pode conter valores de 0 a 65.535 |
np.uint32 | uint32_t | 4 bytes | pode conter valores de 0 a 4.294.967.295 |
np.uint64 | uint64_t | 8 bytes | pode conter valores de 0 a 18446744073709551615 |
np.intp | intptr_t | 4 bytes | um número inteiro assinado usado para indexação |
np.uintp | uintptr_t | 4 bytes | um número inteiro não assinado usado para segurar um ponteiro |
np.float32 | flutuador | 4 bytes | precisão de flutuador único |
np.float64 | Duplo | 8 bytes | precisão de flutuador duplo |
np.complex64 | complexo de flutuação | 8 bytes | precisão de flutuador único em números complexos |
np.complex128 | complexo duplo | 16 bytes | precisão de flutuação dupla em números complexos |
Exemplos de tipos de dados NumPy
Agora, vamos entender como um tipo de dados numpy específico é usado.
Exemplo 1
Criando um objeto de tipo de dados
dt = np.dtype(np.int8)
Resultado:
Exemplo 2
Localizando o tamanho de um tipo de dados
dt = np.dtype(np.int8)
name = dt.name
sizeoftype = dt.itemsize
print('name:', name, 'size:', sizeoftype)
Resultado:
Exemplo 3
Criando um objeto de tipo de dados usando símbolos exclusivos para cada tipo de dados
Cada tipo de dado em numpy possui um código de caractere associado que o identifica exclusivamente.
dt = np.dtype('i4')
Resultado:
Exemplo 4
Usando tipos de dados para criar uma matriz estruturada
employee_info = np.dtype((('name', 'S10'), ('age', 'i1'), ('salary', 'f4'), ('rating', 'f4')))
print(employee_info)
Resultado:
a = np.array((('Karthik', 31, 20000, 3.84), ('Rita', 25, 25123.34, 4.41)), dtype = employee_info)
print (a)
Resultado:
Conclusão
Os tipos de dados numpy são mais ou menos como os tipos de dados C. Eles podem ser categorizados em bool, byte, int, float, double e complex. É uma obrigação para bons programadores entender como os dados são armazenados e manipulados. Isso pode ser alcançado através da compreensão eficaz dos tipos de dados.
Artigos recomendados
Este é um guia para os tipos de dados NumPy. Aqui discutimos como um determinado tipo de dados numpy é usado junto com os exemplos. Você também pode consultar os seguintes artigos para saber mais -
- O que é o NumPy?
- Matplotlib em Python
- Tipos de dados Python
- Dicionário em Python