Se você já trabalha com Python, provavelmente já ouviu falar da biblioteca NumPy.
Mas você sabe realmente para que serve a biblioteca NumPy e como ela pode transformar a forma como lida com grandes volumes de dados?
Essa biblioteca é essencial para quem busca otimizar o processamento de dados e trabalhar de forma mais eficiente, especialmente em áreas como ciência de dados.
Usar NumPy corretamente pode acelerar seus projetos e evitar problemas de desempenho com grandes quantidades de dados.
Nesta aula, eu vou te mostrar como essa poderosa ferramenta pode fazer a diferença no seu dia a dia, e você vai aprender tudo, desde a criação de arrays até operações mais avançadas.
Vamos lá?
O que você vai ver hoje?
O que é o NumPy e para que serve?
O NumPy é uma biblioteca do ecossistema Python focada em operações numéricas e computação científica.
Ela permite a criação e manipulação de arrays multidimensionais, oferecendo uma performance superior em relação às listas nativas do Python.
Isso ocorre porque o NumPy utiliza memória de maneira mais eficiente e executa operações matemáticas de forma mais rápida.
Não à toa, ela é amplamente usada em áreas como análise de dados, estatísticas e machine learning, sendo compatível com outras bibliotecas como Pandas e Matplotlib.
Em resumo, a biblioteca NumPy serve para otimizar cálculos e processamento de grandes volumes de dados, facilitando a vida de quem lida com ciência de dados e programação científica.
Como funciona a Biblioteca NumPy?
A biblioteca NumPy funciona ao fornecer uma estrutura eficiente para trabalhar com arrays multidimensionais, chamados de ndarrays.
Esses arrays são mais rápidos e consomem menos memória do que as listas tradicionais do Python, permitindo o processamento de grandes volumes de dados de forma otimizada.
Utilizando operações vetorizadas, o NumPy realiza cálculos em blocos de dados simultaneamente, dispensando loops explícitos.
A biblioteca também oferece diversas funções matemáticas, lógicas e estatísticas, que simplificam a execução de tarefas complexas.
E como já pontuei, a possibilidade de integração com outras ferramentas, como Pandas e Matplotlib, amplia suas capacidades, tornando-a uma solução flexível e poderosa para quem trabalha com ciência de dados.
Agora que você já sabe o que é a biblioteca Numpy em Python e para que serve, vou te contar melhor as vantagens da ferramenta.
Quais são as vantagens de usar o NumPy em Python?
Usar o NumPy em Python oferece uma série de vantagens, especialmente para quem lida com grandes volumes de dados ou realiza cálculos complexos.
A biblioteca foi projetada para otimizar operações numéricas, proporcionando um desempenho significativamente melhor em comparação com as listas tradicionais do Python.
As principais vantagens incluem:
- Integração: é altamente compatível com outras bibliotecas de ciência de dados, como Pandas e Matplotlib.
- Funcionalidade: o NumPy inclui uma vasta gama de funções matemáticas e estatísticas que facilitam cálculos complexos;
Eficiência de memória: Arrays multidimensionais consomem menos memória do que listas, o que é crucial em grandes projetos de dados; - Desempenho superior: operações em arrays do NumPy são mais rápidas devido ao uso de processamento vetorizado e memória otimizada.
Se você precisa de desempenho e eficiência, certamente deve utilizar a biblioteca NumPy.
Quais são as estruturas básicas da Biblioteca NumPy?
O NumPy oferece duas principais estruturas de dados que são fundamentais para a manipulação de dados numéricos:
- ndarray (Array N-dimensional): esta é a estrutura central do NumPy. É uma matriz multidimensional que permite armazenar e manipular grandes volumes de dados de forma eficiente. O ndarray é mais rápido e usa menos memória do que as listas padrão do Python.
- Matriz: embora similar ao ndarray, a matriz no NumPy é uma versão especializada que se comporta como uma matriz matemática, sendo muito utilizada para álgebra linear.
Além dessas, o NumPy também oferece uma série de funções para transformar, manipular e realizar operações sobre essas estruturas, como a criação de arrays, concatenar, dividir e realizar operações matemáticas em massa, permitindo grande flexibilidade no tratamento de dados.
Vamos falar disso a partir de agora.
Como usar a Biblioteca NumPy no Python?
Como acabamos de ver, a biblioteca Numpy é muito utilizada quando falamos de um grande volume de dados.
Afinal, ela possui um tempo de processamento de dados maior, e você já sabe: 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.
Se você tem interesse nessa área, essa biblioteca será muito útil pra você. Mas mesmo que não tenha interesse, a ferramenta pode te ajudar a melhorar o tempo de processamento dos seus códigos.
O primeiro passo é 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, e para entender o que é biblioteca NumPy e para que serve, você deve saber melhor os tipos de Array.
Caso prefira esse conteúdo no formato de videoaula, 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:
Tipos de Array
Antes de dar início ao código é importante que você saiba o que é um Array: 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.
Criar uma Array
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 os conjuntos de informações iguais a 0 ou iguais 1 são muito utilizados nesses processos, temos também alguns códigos específicos para essa criação.
zero_array = np.zeros(shape = (5,3,6))
print(zero_array)
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).
A diferença é que agora estamos adicionando 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, imagine que você tenha um objeto em 3 dimensões, com altura, largura e profundidade.
Para 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. Fonte da imagem (modificada).
Essa imagem é perfeita para te mostrar como ficam as 3 dimensões.
Nessa parte de imagens você verá muito isso. 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.
Criando uma sequência de números
# 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)
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 informar a quantidade de dados que teremos e será feita uma sequência de 0 até aquele valor (como no primeiro exemplo de 0 a 9, totalizando 10 elementos).
No segundo exemplo, temos a informação que queremos do número 3 ao 15, aumentando de 2 em 2.
Essas 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.
Criando uma sequência linear
array_linear = np.linspace(0, 100 , num = 20, endpoint = False, testep = True)
print(array_linear)
O np.linspace permite que você crie uma sequência linear de valores espaçados igualmente entre si.
Aqui, queremos uma sequência de 0 a 100 com 2 elementos. Então o próprio código fará esse espaçamento igual e te dará todos os elementos desse conjunto de dados.
Nesse caso nós temos o endpoint = False, e isso significa que não vamos considerar o valor 100.
Ele não precisa 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 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.
No exemplo, é de 5 em 5 (e facilmente você percebe isso), mas, em alguns casos, basta utilizar esse recurso para não ter que fazer conta, ok?
Descobrindo o tamanho de um Array
zero_array = np.zeros(shape = (5,3,6))
print(zero_array)
print(zero_array.shape)
print(zero_array.size)
print(zero_array.ndim)
Para essa próxima etapa, temos alguns comandos para descobrir as informações de um array além do print. Afinal, podemos ter um conjunto de dados muito grande e pode não ser muito útil utilizar o print.
Temos então o shape, size e ndim, que informarão o formato, o tamanho e o número de dimensões dos conjuntos de dados.
Concatenar Arrays
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)
Às vezes, é necessário juntar as informações para construir 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.
Consultar itens de um Arrays
a = np.array([[1,2,3,4], [5,6,7,8],[9,10,11,12]])
print(a)
print('------------')
print(a[a<8])
Se você quer mais ferramentas úteis para trabalhar com esses arrays tranquilamente na biblioteca NumPy, vamos entender como consultar informações dentro de um conjunto de dados.
Aqui, estamos verificando quais os valores dentro do nosso conjunto de dados que são menores do que 8.
Fazer operações com Arrays
a = np.array([1,2,3])
print(a.max())
print(a.mmin())
print(a.mean())
print(a.sum())
Como qualquer tratamento ou análise de dados, é necessário fazer algumas operações e com arrays não seria diferente.
Acima, mostrei algumas das principais operações que podemos fazer com os arrays.
Gerar amostras aleatórias
from numpy.random import default_rng
rng = default_rng()
aleatorio = rng.integers(10, size=(2,3))
print(aleatorio)
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 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, pois é algo bastante comum em análise de dados.
Diferença entre Arrays e Listas
Para finalizar nosso estudo sobre a biblioteca NumPy, vou te mostrar algumas diferenças entre arrays e listas. As estruturas são muito parecidas, mas possuem algumas diferenças.
A primeira delas é a forma como o Python representa. Abaixo, temos o tipo como o Python classifica as duas.
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]))
Aprendendo essas 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.
Como aprender mais sobre Python?
Aprender Python é uma jornada contínua, e existem várias formas de expandir seus conhecimentos.
Uma das melhores maneiras de avançar é praticando constantemente, criando projetos próprios e resolvendo problemas do dia a dia.
Explore também as principais bibliotecas de Python, como NumPy, Pandas, Matplotlib e outras, que são essenciais para diferentes áreas como ciência de dados, automação e desenvolvimento web.
Participar de comunidades online, como fóruns e grupos de estudo, também é uma excelente forma de trocar experiências e aprender com outros programadores.
Para acelerar sua evolução, você pode contar com o curso da Hashtag Treinamentos.
Nossos especialistas oferecem um conteúdo didático e prático, voltado para o domínio de Python e suas bibliotecas mais importantes.
Comece agora sua jornada! Inscreva-se em nosso curso e leve suas habilidades em Python para o próximo nível!
Conclusão
Nesta aula, exploramos a biblioteca NumPy no Python, uma ferramenta essencial para quem lida com grandes volumes de dados ou busca otimizar o tempo de processamento.
Você aprendeu sobre tipos de arrays, como criar e manipular dados de forma eficiente, além de realizar operações essenciais para transformar e analisar conjuntos de dados.
Agora, o próximo passo é colocar em prática tudo o que foi abordado. Quanto mais você praticar, mais natural se tornará trabalhar com NumPy.
Lembre-se de sempre consultar a documentação oficial para tirar dúvidas e entender melhor cada método.
Ela é sua aliada na jornada de aprendizado.
E, claro, não tenha medo de testar diferentes abordagens e fazer experimentos. O Python é uma linguagem poderosa, e com as habilidades adquiridas aqui, você está pronto para avançar em projetos reais.
Continue praticando e explore o potencial do Python com o apoio da Hashtag Treinamentos.
Descubra o poder da automação com Python com 4 códigos simples!
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Biblioteca NumPy: o que é, vantagens e como usarAprenda como usar a biblioteca NumPy no Python para otimizar o processamento de dados e melhorar sua eficiência em projetos de ciência de dados.
- Set em Python: o que é, quando e como usar no seu projetoAprenda tudo sobre sets em Python: o que são, como usar e quando aplicar. Descubra operações com conjuntos e vantagens sobre listas!
- ETL com Python: guia completo para criar pipelines de dadosAprenda como construir pipelines ETL com Python do zero! Descubra as melhores bibliotecas, resolva desafios comuns e torne-se um especialista!
Posts mais recentes da Hashtag Treinamentos
- 5 Boas Práticas de SQL para Iniciantes: Otimize Suas Consultas e Organize Seu CódigoSe você está começando com MySQL ou busca melhorar suas habilidades em SQL, este post traz cinco boas práticas de escrita de SQL para iniciantes.
- Função SE Excel: Exemplos e Dicas para Uso [Guia]A função SE Excel é muito útil para definir condições e criar uma planilha mais completa e funcional. Confira nesta aula!
- Exercícios de Listening em Inglês – Como Melhorar sua CompreensãoFaça estes exercícios de listening em inglês e melhore sua compreensão! Descubra técnicas e estratégias para praticar e evoluir no aprendizado do idioma!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.