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
Com uma matriz de string o processo é o mesmo.
import numpy as np
matriz = np.array([1, 2, 3])
print(matriz.dtype)
matriz = np.array([1, 2, 3])
print(matriz.dtype)
Exemplo
import numpy as np
matriz = np.array(['Melão', 'Abacaxi', 'Maçã'])
print(matriz.dtype)
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
Se um elemento da matriz não poder ser convertido o erro ValueError vai ser lançado.
import numpy as np
matriz = np.array([1, 2, 3], dtype='S')
print(matriz.dtype)
matriz = np.array([1, 2, 3], dtype='S')
print(matriz.dtype)
Exemplo
import numpy as np
try:
matriz = np.array([1, 2, 3, 'a'], dtype='i')
except ValueError:
print('Erro: ValueError')
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
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.
import numpy as np
matriz = np.array([1, 2, 3], dtype='i4')
print(matriz)
print(matriz.dtype)
matriz = np.array([1, 2, 3], dtype='i4')
print(matriz)
print(matriz.dtype)
Exemplo
É 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.
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)
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)
0 comentários:
Postar um comentário