Tipos de dados em arrays NumPy: entenda o dtype na prática

Por
Publicado em
2 min. de leitura

Fala, meus consagrados! Beleza?

Neste artigo, vamos estudar os tipos de dados em arrays NumPy, um tema essencial para quem está aprendendo Python aplicado à ciência de dados, aprendizado de máquina e concursos de TI. Antes de avançar para os tipos próprios do NumPy, é importante revisar os tipos básicos da linguagem Python, pois eles servem como base para entender como o ndarray armazena, interpreta e processa valores por meio do atributo dtype. O próprio artigo parte dessa relação entre tipos nativos do Python, como int, float, complex, bool e str, e os tipos específicos do NumPy usados em funções como np.array() e astype().

Terças e quintas de TI. Conteúdo prático e artigos especializados para acelerar seu conhecimento. Acesse agora!

Antes de estudar os tipos específicos do NumPy, é importante lembrar alguns tipos básicos da linguagem Python.

CategoriaTipo PythonExemplo
Inteirointx = 15
Ponto flutuantefloaty = 1.84
Complexocomplexz = 15 + 7j
Booleanoboolx = True
Textostrx = “Python”
Tabela 1: Tipos de dados em Python.

Exemplos:

x = 15
y = 1.84
z = 15 + 7j
ativo = True
linguagem = "Python"
print(type(x))
print(type(y))
print(type(z))
print(type(ativo))
print(type(linguagem))

Resultado da execução:

<class 'int'>
<class 'float'>
<class 'complex'>
<class 'bool'>
<class 'str'>

Esses tipos são nativos do Python. O NumPy, por sua vez, possui tipos próprios e mais específicos, voltados para computação numérica e armazenamento eficiente.

O NumPy possui tipos de dados adicionais, muitos deles representados por um único caractere.

Esses códigos são usados em funções como np.array() e astype().

CódigoTipo NumPySignificado
iInteiroNúmeros inteiros
fPonto flutuanteNúmeros decimais
cComplexoNúmeros complexos
bBooleanoValores booleanos
SStringString de bytes
UString UnicodeTexto Unicode
MDatetimeDatas e horários
mTimedeltaDiferenças de tempo
OObjetoObjetos Python
VVoidBloco fixo de memória para outro tipo
Tabela 2: Tipos de dados em NumPy.

Exemplos:

import numpy as np
inteiros = np.array([1, 2, 3], dtype='i')
decimais = np.array([1.5, 2.5, 3.5], dtype='f')
textos = np.array(["Python", "Java"], dtype='U')
booleanos = np.array([True, False, True], dtype='b')
print(inteiros.dtype)
print(decimais.dtype)
print(textos.dtype)
print(booleanos.dtype)

Resultado da execução:

int32
float32
<U6
int8

Em alguns ambientes, os resultados podem variar levemente, como int32, int64, float32 ou float64, dependendo da plataforma, da arquitetura e do tipo escolhido.

O atributo dtype indica o tipo de dado armazenado pelos elementos de um array NumPy. Em outras palavras, o dtype informa se os elementos do ndarray são:

  • Inteiros;
  • Números de ponto flutuante;
  • Strings;
  • Booleanos;
  • Números complexos;
  • Objetos;
  • Datas;
  • Outro tipo suportado pelo NumPy.

Exemplo:

import numpy as np
arrei = np.array([10, 12, 14])
print(arrei)
print(type(arrei))
print(arrei.dtype)

Resultado da execução:

[10 12 14]
<class 'numpy.ndarray'>
int64

O array foi criado com números inteiros. Por isso, o NumPy inferiu automaticamente um tipo inteiro, como int64.

Agora observe um array de strings:

import numpy as np
arrei = np.array(["Python", "Java", "PHP", "C"])
print(arrei)
print(type(arrei))
print(arrei.dtype)

Resultado da execução:

['Python' 'Java' 'PHP' 'C']
<class 'numpy.ndarray'>
<U6

O tipo <U6 indica uma string Unicode com até 6 caracteres. Isso ocorre porque “Python” é o maior texto do array, com 6 caracteres.

Espero que tenham gostado! 

Forte abraço e até a próxima jornada!

Por
Publicado em
2 min. de leitura