Blog

Postado em em 9 de agosto de 2021

Biblioteca Numpy no Python – [Alto Processamento de Dados]

Hoje eu vou te mostrar como utilizar a Biblioteca Numpy no Python que é muito utilizada para a parte de processamento de dados!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber a planilha que usamos na aula no seu e-mail, preencha:

Resumo

Nessa aula eu vou te mostrar como utilizar a biblioteca Numpy no Python que é uma biblioteca muito útil na área de ciência de dados.

Você já deve ter visto essa biblioteca em diversos códigos, pois ela é possui um tempo de processamento de dados maior, então com relação as listas você já vai notar uma diferença.

Outro ponto importante é que essa biblioteca é utilizada quando temos uma grande quantidade de dados para processar, então nesses casos você sempre vai notar que além das bibliotecas mais comuns, pandas, matplotlib… teremos também o Numpy.

O que você vai aprender nessa aula:

Como usar a Biblioteca Numpy no Python

Se você quer atuar na área de ciência de dados, análise de dados, processamento de dados no Python e precisa de uma ferramenta boa para trabalhar com uma quantidade grande de dados.

Você já deve ter ouvido falar da biblioteca Numpy! Ela é que vai te auxiliar e nessa aula eu vou te ensinar como utilizar essa biblioteca para que você possa resolver os seus problemas.

Python Numpy

Essa biblioteca é muito utilizada quando estamos falando de muitos dados, então você certamente já ouviu ou vai ouvir falar bastante dessa biblioteca.

Por esse motivo ela é muito útil, pois ela possui um tempo processamento de dados maior, ou seja, quando temos mais dados o que queremos é exatamente uma quantidade maior de processamento!

Então ela vai ser bem útil quando estivermos falando de modelagem de dados muito grandes, pandas, inteligência artificial.

Tudo que você tiver uma grande quantidade de dados você vai ver que essa biblioteca vai estar presente.

OBS: Caso você tenha interesse em entrar nessa área essa biblioteca vai ser muito útil pra você. Mas mesmo que não tenha interesse, essa biblioteca vai te ajudar também a melhorar o tempo de processamento dos seus códigos, então ela vai ser útil de uma maneira ou de outra!

O primeiro passo antes de iniciar é instalar a biblioteca, para isso basta ir até o anaconda prompt (caso você tenha o Jupyter instalado) e digitar pip install numpy.

Feito isso podemos iniciar o código importado a biblioteca com o comando import numpy as np.

Agora já podemos começar!

Antes de dar início ao código é importante que você saiba o que é um array, isso nada mais é do que um conjunto de dados que pode estar disposto em diferentes dimensões.

Temos alguns tipos de array nessas diferentes dimensões e você já deve ter ouvido falar de pelo menos um deles.

  • 1D array – Possui apenas uma dimensão. Será comumente chamado de vetor ou vector;
  • 2D array – Possui 2 dimensões. Será comumente chamado de matriz ou matrix;
  • 3D ou Mais array – Possui 3 ou mais dimensões. Será comumente chamado de tensor.

Agora eu vou te mostrar como criar um Array no Python (como criar um vetor no Python).

a = np.array([1,2,3,4,5,6])
print(a)
print(type(a))

Aqui vamos utilizar o np.array para criar um conjunto de dados de uma dimensão e atribuir esse conjunto a uma variável.

OBS: Lembrando que deixamos todos os links das documentações no arquivo para que você possa acessar sempre que precisar para tirar suas dúvidas e fazer suas consultas.

Como é muito utilizado nesses processos conjuntos de informações iguais a 0 ou iguais 1 temos também alguns códigos específicos para essa criação.

zero_array = np.zeros(shape = (5,3,6))
print(zero_array)
Array de zeros
Array de zeros

Nesse caso por exemplo estamos utilizando o np.zeros para criar um conjunto com zeros (pode-se utilizar o np.ones para criar um conjunto com 1).

Só que agora estamos acrescentando o shape, mas o que é isso?

Na verdade, é uma forma de informar ao Python as dimensões do nosso array. Então é como se fossem 5 matrizes de 3 linhas e 6 colunas.

Para que você visualize melhor isso é como se você tivesse um objeto em 3 dimensões, com altura, largura e profundidade, pra facilitar pense em um cubo mágico e cada quadradinho desse cubo é uma informação, então você tem um bloco de informações.

Representação de Arrays em 3 dimensões
Representação de Arrays em 3 dimensões

Fonte da imagem (modificada): https://dev.to/sandeepbalachandran/machine-learning-going-furthur-with-cnn-part-2-41km

Essa imagem é perfeita para te mostrar como ficam as 3 dimensões, então nessa parte de imagens você vai ver muito isso.

Onde uma imagem colorida é composta de 3 dimensões de matrizes, cada uma com as cores Vermelho, Verde e Azul que são as cores conhecidas como RGB.

# Dá uma sequência de números:
zero_dez = np.arange(10)
print(zero_dez)
pula_dois = np.arange(3,15,2)
print(pula_dois)
Criando uma sequência de números
Criando uma sequência de números

Para o np.arrange nós conseguimos criar conjunto de dados em sequência sem que você perca tempo tendo que escrever esse conjunto.

Então podemos tanto informar a quantidade de dados que vamos ter e será feita uma sequência de 0 até aquele valor (como no primeiro exemplo de 0 a 9, totalizando 10 elementos).

E no segundo exemplo temos a informação que queremos do número 3 ao 15 aumentando de 2 em 2.

Então são formas mais rápidas para construir um array sem que você tenha que escrever tudo de forma manual, o que seria horrível para conjuntos de dados muito grandes.

array_linear = np.linspace(0, 100 , num = 20, endpoint = False, testep = True)
print(array_linear)
Criando uma sequência linear
Criando uma sequência linear

O np.linspace permite com que você crie uma sequência linear de valores espaçados igualmente entre si.

Nesse caso queremos uma sequência de 0 a 100 com 2 elementos. Então o próprio código já vai fazer esse espaçamento igual e já vai te dar todos os elementos desse conjunto de dados.

OBS: Nesse caso nós temos o endpoint = False, e isso significa que não vamos considerar o valor 100, ele não precisar aparecer dentro do nosso conjunto, então o espaçamento linear seria de 5 em 5, caso contrário você pode fazer um teste para ver como ficaria esse conjunto se considerar o ponto final!

Outro ponto bem importante é o retstep = True, que é esse número que é mostrado após o nosso conjunto de dados. Ele nada mais é do que o espaçamento que foi dado entre cada um dos números.

Nesse caso é de 5 em 5 e facilmente você percebe isso, mas em alguns casos para não ter que fazer conta, basta utilizar esse recurso!

zero_array = np.zeros(shape = (5,3,6))
print(zero_array)

print(zero_array.shape)
print(zero_array.size)
print(zero_array.ndim)
Descobrindo o tamanho de um Array
Descobrindo o tamanho de um Array

Para essa próxima etapa temos alguns comandos para descobrir as informações de um array, além do print, pois como podemos ter um conjunto de dados muito grande pode não ser muito útil utilizar o print.

Então temos o shape, size e ndim. Que vão formato dos conjuntos de dados, qual o tamanho desse conjunto e o número de dimensões que temos nesse conjunto.

Outro ponto bem interessante para abordar em arrays é a parte de concatenar, pois podemos juntar dois arrays em um só.

a = np.array([1,2,3])
b = np.array([4,5,6])

c = np.concatenate((a,b))
d = np.concatenate((b,a))

print(c)
print(d)
Concatenando Arrays
Concatenando Arrays

As vezes é necessário juntar as informações para construir um outro array dependendo do que está trabalhando, então é importante saber não só como construir eles, mas como trabalhar com eles dentro do Python.

a = np.array([[1,2,3,4], [5,6,7,8],[9,10,11,12]])
print(a)
print('------------')
print(a[a<8])
Biblioteca Numpy no Python
Consultando itens de um Array

Então é claro que vamos abordar mais algumas ferramentas úteis para que você consiga trabalhar com esses arrays tranquilamente.

Um ponto que é necessário assim como temos nas listas é para consultar informações dentro de um conjunto de dados.

Nesse caso estamos verificando quais os valores dentro do nosso conjunto de dados que são menores do que 8.

a = np.array([1,2,3])

print(a.max())
print(a.mmin())
print(a.mean())
print(a.sum())
Biblioteca Numpy no Python
Operações com Arrays

Como qualquer tratamento ou análise de dados é necessário fazer algumas operações e com arrays não seria diferente, então temos algumas das principais operações que podemos fazer com os arrays.

from numpy.random import default_rng
rng = default_rng()
aleatorio = rng.integers(10, size=(2,3))
print(aleatorio)
Biblioteca Numpy no Python
Gerando amostras aleatórias

Outro ponto bem interessante dentro da análise de dados é que algumas vezes precisamos de valores aleatórios, seja para testar algum código ou até mesmo testar uma ferramenta.

Então ao invés de criar uma sequência ou algo do tipo que seria muito “trivial” para o código ou ferramenta utilizar, podemos criar arrays com valores aleatórios.

Só que para esse caso temos que importar a biblioteca default_rng e utilizar o rng.integers que vai gerar números inteiros aleatórios.

Se você nunca utilizou números aleatórios assim não se preocupe que é algo bastante comum em análise de dados.

a = np.array([1,2,3,4,5,6,7,8])
print("Esse é o array 'a':",a)
print("Esse é o tipo de 'a':", type(a))
print('-----------------------------------------')
lista_a = [1,2,3,4,5,6,7,8]
print("Essa pe a 'lista_a':", lista_a)
print("Esse é o tipo de 'lista_a':", type(lista_a))

#arrays não permitem tipos de dados distintos:
a = np.array([1,'Daniel',2,3,4,5,6,7,8]
print(a)
print(type(a[0]))

#já as listas sim:
lista_a = 1[1,'Daniel',2,3,4,5,6,7,8]
print(a)
print(type(lista_a[0]))
Biblioteca Numpy no Python
Diferença entre Arrays e Listas

Para finalizar vamos te mostrar algumas diferenças entre arrays e listas. Pois são estruturas muito parecidas, mas que possuem algumas diferenças.

A primeira delas é a forma como o Python representa, logo abaixo temos o tipo como o Python classifica as duas.

Então dessas duas maneiras você já consegue identificar se é uma lista ou um array (mesmo que não tenha a classificação).

Outro ponto muito importante é que o array não permite tipos de dados diferentes, então se colocarmos um texto dentro desse conjunto de dados o Python passa a classificar os dados dentro dele como string ao invés de inteiro.

Já nas listas isso não acontece, cada elemento vai ser classificado de acordo com o seu conteúdo, então um elemento pode ser classificado como inteiro enquanto o outro pode ser classificado como string.

Conclusão da Biblioteca Numpy no Python

Nessa aula eu te mostrei bastante conteúdo sobre a biblioteca numpy no Python que vai te ajudar muito na parte de processamento de dados, seja para tratar dados muito grandes, seja para melhorar o tempo de processamento dos seus dados.

Tivemos bastante informações, mas agora é importante que você pratique o que aprendeu, assim vai fixar melhor o conteúdo e vai ficando cada vez mais natural na hora de programar.

Não se esqueça de consultar as documentações, elas são muito importantes, pois trazem informações sobre cada método, o que precisa colocar, como ele funciona.

Então nunca fique na dúvida antes de utilizar um código, faça testes, leia a documentação, assim vai conseguir criar seus códigos tranquilamente!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador