sexta-feira, 10 de abril de 2020

Tipos de dados da biblioteca NumPy

Tipos de dados da biblioteca NumPy


A linguagem python tem alguns tipos de variáveis já definidos. Cada tipo de variável é utilizada para trabalhar com um tipo de dado especifico. Uma variável do tipo string é utilizada para trabalhar com sequências de caracteres. Enquanto uma variável do tipo inteiro é utilizada para trabalhar com números.
A biblioteca Numpy também tem seus tipos de dados definido. Cada um definido para trabalhar com um tipo de dado especifico.
Veja abaixo os tipos de dados que podem ser usados com a biblioteca numpy.
  • i - números inteiros
  • u - números inteiros sem sinal
  • b - boolean
  • f - números com ponto flutuante
  • c - números com ponto flutuante complexos
  • m - timedelta
  • M - datetime
  • O - object
  • S - string
  • U - string sem sinal
  • V - void

Verificando o tipo de dado de uma matriz

Com a propriedade dtype, dos objetos matriz da numpy, é possível saber qual é o tipo de dado da matriz. Essa propriedade guarda o tipo de dado da matriz. Podemos acessar essa propriedade diretamente no objeto.
Exemplo
import numpy as np

matriz = np.array([1, 2, 3])
print(matriz.dtype)
Com uma matriz de string o processo é o mesmo.
Exemplo
import numpy as np

matriz = np.array(['Melão', 'Abacaxi', 'Maçã'])
print(matriz.dtype)

Criando uma matriz com o tipo definido

Imagine que você precisa dos números 1, 2 e 3 como strings e não como inteiros. Se for criada a matriz do jeito tradicional os números vão ser do tipo int64 (inteiro). Podemos mudar esse comportamento passando o tipo de dado desejado no argumento dtype da função array.
Exemplo
import numpy as np

matriz = np.array([1, 2, 3], dtype='S')
print(matriz.dtype)
Se um elemento da matriz não poder ser convertido o erro ValueError vai ser lançado.
Exemplo
import numpy as np
try:
  matriz = np.array([1, 2, 3, 'a'], dtype='i')
except ValueError:
  print('Erro: ValueError')

Tamanho da variável

Com os tipos de dados i, u, f, S e U podemos informar o tamanho que a variável vai ocupar na memoria do computador.
Exemplo
import numpy as np

matriz = np.array([1, 2, 3], dtype='i4')

print(matriz)
print(matriz.dtype)
Nesse exemplo cada elemento da matriz vai ocupar 4 bytes na memoria do computador. Quanto maior for o tamanho da memoria ocupada pela variável, maior é a faixa de números que podem ser guardados. Nesse exemplo, cada elemento da matriz pode guardar um numero compreendido entre -2,147,483,648 a +2,147,483,647.
Exemplo
import numpy as np

a = np.array([9, 32767], dtype='i2')
b = np.array([2, 2147483647], dtype='i4')
c = np.array([1, 9223372036854775807], dtype='i8')

# 16 bytes -32,768 a +32,767
print(a)
print(a.dtype)

# 32 bytes -2,147,483,648 a +2,147,483,647
print(b)
print(b.dtype)

# 64 bytes -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807
print(c)
print(c.dtype)
É interessante notar que mesmo quando criamos uma variável do tipo inteiro, de 8 bytes, e salvamos nela um numero pequeno, como o dois, ela ainda vai ocupar os 8 bytes.

0 comentários:

Postar um comentário