Exploração de Tipos de Dados NumPy

Beginner

Introdução

Neste laboratório, abordaremos os tipos de dados na biblioteca NumPy do Python. Passaremos pela sintaxe do objeto dtype e seus parâmetros.

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido às limitações do Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Compreendendo o Objeto dtype do NumPy

No NumPy, todos os itens de um array são objetos de tipo de dados que também são conhecidos como NumPy dtypes. O objeto de tipo de dados é usado para implementar o tamanho fixo da memória correspondente a um array.

Ele nos fornece principalmente informações sobre o seguinte:

  • O tipo de dados (por exemplo, integer, float ou object do Python)
  • O tamanho dos dados
  • A ordem dos bytes (little-endian ou big-endian)
  • No caso de um tipo estruturado, ele nos informa sobre os nomes dos campos, o tipo de dados de cada campo e a parte do bloco de memória ocupada por cada campo.
  • No caso, se o tipo de dados for um subarray, ele nos informa sobre sua forma e tipo de dados

Criando um objeto dtype do NumPy

A seguir está a sintaxe necessária para criar o objeto dtype:

numpy.dtype(object, align, copy)

A seguir está uma descrição dos argumentos do construtor mencionado acima:

  • object: Este argumento é usado para representar o objeto que deve ser convertido para o tipo de dados.
  • align: É um argumento opcional. Ele é usado para adicionar preenchimento aos campos para corresponder ao que um compilador C produziria para uma estrutura C semelhante. Este argumento pode ser definido como qualquer valor booleano.
  • copy: Este argumento é usado para criar uma cópia do objeto dtype e também é um argumento opcional.

Tipos de Dados Numéricos em NumPy

A biblioteca NumPy fornece principalmente uma gama maior de tipos de dados numéricos do que a fornecida pelo Python. A lista de tipos de dados numéricos é fornecida na tabela abaixo:

SN Tipo de dado Descrição
1 bool_ Isso é usado para representar o valor booleano indicando verdadeiro ou falso. É armazenado como um byte.
2 int_ Este é o tipo padrão de um inteiro. É idêntico ao tipo long em C, que contém principalmente um inteiro de 64 bits ou 32 bits.
3 intc Isso é semelhante ao inteiro C (C int), pois representa um int de 32 ou 64 bits.
4 intp Isso é usado para representar os inteiros que são usados para indexação.
5 int8 Este é o inteiro de 8 bits idêntico a um byte. A faixa de valores é de -128 a 127.
6 int16 Este é o inteiro de 2 bytes (16 bits) e a faixa é de -32768 a 32767.
7 int32 Este é o inteiro de 4 bytes (32 bits). A faixa é de -2147483648 a 2147483647.
8 int64 Este é o inteiro de 8 bytes (64 bits) e a faixa é de -9223372036854775808 a 9223372036854775807.
9 uint8 Este é um inteiro sem sinal de 1 byte (8 bits).
10 uint16 Este é um inteiro sem sinal de 2 bytes (16 bits).
11 uint32 Este é um inteiro sem sinal de 4 bytes (32 bits).
12 uint64 Este é um inteiro sem sinal de 8 bytes (64 bits).
13 float_ Isso é idêntico a float64.
14 float16 Isso é usado para representar o float de meia precisão. 5 bits são reservados para o expoente. 10 bits são reservados para a mantissa e 1 bit é reservado para o sinal.
15 float32 Isso é usado para representar o float de precisão simples. 8 bits são reservados para o expoente, 23 bits são reservados para a mantissa e 1 bit é reservado para o sinal.
16 float64 Isso é usado para representar o float de dupla precisão. 11 bits são reservados para o expoente, 52 bits são reservados para a mantissa, 1 bit é usado para o sinal.
17 complex_ Isso é idêntico a complex128.
18 complex64 Isso é usado para representar o número complexo onde a parte real e imaginária compartilham 32 bits cada.
19 complex128 Isso é usado para representar o número complexo onde a parte real e imaginária compartilham 64 bits cada.

Caracteres usados para representar dtype em NumPy

Aqui está a lista de caracteres que são usados para representar dtype no NumPy:

  • i: inteiro (integer)
  • b: booleano (boolean)
  • u: inteiro sem sinal (unsigned integer)
  • f: ponto flutuante (float)
  • c: ponto flutuante complexo (complex float)
  • m: timedelta
  • M: datetime
  • O: objeto (object)
  • S: string
  • U: string Unicode
  • V: o bloco fixo de memória para outros tipos (void)

Exemplos

Exemplo 1: Encontrando o Tipo de Dados de um Array

Vamos tentar descobrir o tipo de dados do array contendo strings:

import numpy as np

ar1 = np.array(['cadeira', 'livro', 'caderno'])
print(ar1.dtype)

Saída:

<U8

Exemplo 2: Construindo um Objeto dtype

Podemos criar um objeto dtype usando a função numpy.dtype.

import numpy as np

dt1 = np.dtype(np.int64)
print (dt1)

Saída:

int64

Exemplo 3: Usando a Representação Mais Curta de Tipos de Dados Numéricos

No exemplo a seguir, usaremos a representação mais curta de tipos de dados numéricos:

import numpy as np

a = np.dtype('i4')
print (a)

Saída:

int32

Exemplo 4: Criando um Objeto dtype Estruturado

Criaremos um tipo de dado estruturado e o aplicaremos a um objeto ndarray:

import numpy as np

## info com chave e valor
a = np.dtype([('matricula',np.int16)])
print(a)

a = np.array([(101,),(201,),(301,)], dtype=a)
print(a)

Saída:

[('matricula', '<i2')]
[(101,) (201,) (301,)]

Exemplo 5: Mudando o Tipo de Dados

No exemplo a seguir, mudaremos o tipo de dados de float para integer usando int como valor de parâmetro:

import numpy as np

ar= np.array([1.1, 2.1, 3.1])

newarr = ar.astype(int)

print(newarr)
print(newarr.dtype)

Saída:

[1 2 3]
int64

Resumo

Neste laboratório, abordamos o conceito de tipos de dados em um array. Vimos como o objeto dtype é usado para especificar o tipo de dados dos valores, sua sintaxe e os parâmetros necessários para o objeto dtype. Também cobrimos vários tipos de dados numéricos e, em seguida, alguns exemplos para sua compreensão.