Tipos de dados em Python numérico

Neste artigo, discutimos os tipos de dados numpy com exemplos para atender com mais eficiência aos requisitos do desenvolvedor Python.



Tipos de dados NumPy

NumPy tem vários tipos de dados , que são tipos de dados com um único caractere, por exemplo i para inteiros e u para inteiros sem sinal .

Antes de discutirmos os tipos de dados NumPy , vamos revisar os tipos de dados padrão do Python :

  1. strings – As aspas são utilizadas para exibir dados de texto. Por exemplo, “mreexemplos”.
  2. integer – Números que são exibidos como inteiros. Por exemplo, 7, -7.
  3. float – Um número que descreve um número real. Por exemplo, 4,33, 78,346.
  4. boolean – Um valor True ou False é utilizado para descrevê-lo.
  5. complex – Descreve números complexos. Por exemplo, 4 + 72j ou 3,24 + 6,11j.

Aqui está uma lista dos tipos de dados do NumPy e os caracteres que identificam cada tipo.

  • b – booleano.
  • c – flutuação complexa.
  • f- flutuar.
  • i – inteiro.
  • u – inteiro sem sinal.
  • m – delta de tempo.
  • M – data e hora.
  • O – objeto.
  • S – corda.
  • U – string unicode.
  • V – O bloco de memória permanece o mesmo para os outros tipos ( void ).

Verificação do tipo de dados da matriz

Um objeto de matriz NumPy tem um atributo conhecido como dtype que exibe o tipo de dados numpy da matriz.

Descubra qual tipo de dados um objeto array possui:

Example: 1 

1
2
3
4
5
import numpy as npy
even_arr = npy.array([0, 2, 4, 6, 8, 10])
print(even_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 2 

1
2
3
4
5
import numpy as npy
odd_arr = npy.array([1, 3, 5, 7, 9, 11])
print(odd_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Uma matriz com strings pode ser caracterizada por seu tipo de dados:

Example: 3 

1
2
3
4
5
import numpy as npy
sameWords_arr = npy.array(['bass', 'base', 'blew', 'blue', 'cell', 'sell', 'dear', 'deer'])
print(sameWords_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 4 

1
2
3
4
5
import numpy as npy
silent_arr = npy.array(["align", "bridge", "design", "edge", "anchor", "muscle", "echo", "doubt"])
print(silent_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 


Tipos de dados definidos para matrizes

Para tipos de dados numpy , utilizamos a função array() para gerar arrays.

Essa função pode aceitar um argumento adicional: dtype , que indica o tipo de dados esperado associado aos itens da matriz .

Arrays com tipos de dados string são gerados da seguinte forma:

Example: 1 

1
2
3
4
5
6
import numpy as npy
even_arr = npy.array([0, 2, 4, 6, 8, 10], dtype='S')
print(even_arr)
print(even_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 2 

1
2
3
4
5
6
import numpy as npy
odd_arr = npy.array([1, 3, 5, 7, 9, 11], dtype='S')
print(odd_arr)
print(odd_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Também podemos definir tamanhos para i, u, f, S e U.

Atribua tipos de dados inteiros de 2 bytes a uma matriz:

Example: 3 

1
2
3
4
5
6
import numpy as npy
even_arr = npy.array([0, 2, 4, 6, 8, 10], dtype='i2′)
print(even_arr)
print(even_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 4 

1
2
3
4
5
6
import numpy as npy
odd_arr = npy.array([1, 3, 5, 7, 9, 11], dtype='i2′)
print(odd_arr)
print(odd_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Não pode alterar um valor?

Quando se trata de tipos de dados numpy , o NumPy lança um erro de valor se os dados não forem convertidos.

ValueError: Quando uma função recebe um tipo de argumento inesperado ou inválido, um ValueError é lançado.

Não é possível transformar uma string não inteira como 'mrexamples' em um inteiro (irá gerar uma exceção):

Example: 

1
2
3
4
5
import numpy as npy
mrx_arr = npy.array(['1', 'mrexamples', '*'], dtype='i')
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 

1
2
3
4
5
import numpy as npy
mrx_arr = npy.array(['1', 'mrexamples', '*'], dtype='i')
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 

1
2
3
4
5
import numpy as npy
leagues_arr = npy.array(["Major League Soccer","Premier League","La Liga","Serie A","Bundesliga"], dtype='i')
print(leagues_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 


Matrizes existentes podem ser convertidas

No que diz respeito aos tipos de dados numpy , a melhor maneira de modificar o tipo de um array é copiá-lo e executar o método astype() .

Ao passar o tipo de dado como parâmetro, a função astype() faz uma cópia do array.

Os tipos de dados podem ser definidos utilizando uma string, como ' s ' para string, ' i ' para integer, etc., ou utilizando o tipo de dados diretamente, como float para float e int para integer.

Você pode converter o tipo de dados de flutuante para inteiro definindo o valor do parâmetro ' i ':

Example: 

1
2
3
4
5
6
7
import numpy as npy
mrx_arr = npy.array([2.67, 7.4, 4.51, 28.678])
ample_arr = mrx_arr.astype('i')
print(ample_arr)
print(ample_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 

1
2
3
4
5
6
7
import numpy as npy
mrx_arr = npy.array([-36.89, -874.22, -4.51, -7.123])
ample_arr = mrx_arr.astype('i')
print(ample_arr)
print(ample_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ao passar int como o valor do parâmetro, você pode transformar o tipo de dado de float em integer:

Example: 

1
2
3
4
5
6
7
import numpy as npy
mrx_arr = npy.array([2.67, 7.4, 4.51, 28.678])
ample_arr = mrx_arr.astype(int)
print(ample_arr)
print(ample_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 

1
2
3
4
5
6
7
import numpy as npy
mrx_arr = npy.array([-36.89, -874.22, -4.51, -7.123])
ample_arr = mrx_arr.astype(int)
print(ample_arr)
print(ample_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Para transformar o tipo de dados numpy de integer para boolean , siga os exemplos abaixo:

Example: 

1
2
3
4
5
6
7
import numpy as npy
pattern_arr = npy.array([0, 1, 0, 2, 0, 3])
mrx_arr = pattern_arr.astype(bool)
print(mrx_arr)
print(mrx_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Example: 

1
2
3
4
5
6
7
import numpy as npy
pattern_arr = npy.array([-0, -1, -0, -2, -0, -3])
mrx_arr = pattern_arr.astype(bool)
print(mrx_arr)
print(mrx_arr.dtype)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone