Biblioteca NumPy: o que Ă©, vantagens e como usar

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. 

Instalada com pip install numpy, a biblioteca NumPy cria arrays multidimensionais (ndarrays) que ocupam menos memória e processam cálculos muito mais rápido que as listas comuns do Python, graças às operações vetorizadas. Importe com import numpy as np e use np.array() para criar seu primeiro array.

Vamos lá?

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!

ĂŤcone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

O que vocĂŞ aprende neste vĂ­deo

Resposta rápida: O NumPy troca a lista comum pelo array, que aceita um tipo de dado só e por isso processa muito mais rápido. Dá para criar por valores, por formato, com zeros ou uns, ou por sequência, consultar formato e dimensões, acrescentar eixo e filtrar por condição. A aula termina medindo: a mesma multiplicação leva segundos em lista e centésimos em array.

Neste vĂ­deo (62 min):

  • 1:00 - Para que a biblioteca serve e onde ela aparece: dados grandes, ciĂŞncia de dados e IA.
  • 3:00 - Instalar pelo gerenciador de pacotes, uma vez sĂł na máquina.
  • 5:00 - Importar com o apelido curto, que Ă© convenção e aparece em todo cĂłdigo.
  • 6:40 - O conceito de array e o nome que ele recebe dentro da biblioteca.
  • 8:00 - Os nomes por nĂşmero de dimensões: vetor, matriz e tensor.
  • 10:00 - Criar o primeiro array, e provar pelo tipo que ele nĂŁo Ă© uma lista.
  • 12:00 - Criar um array com mais de uma dimensĂŁo.
  • 13:00 - Outras formas de criar: sĂł com zeros, sĂł com uns, e vazio.
  • 14:00 - O argumento de formato, e o que cada nĂşmero dele significa.
  • 18:00 - Criar uma sequĂŞncia definindo inĂ­cio, fim e passo.
  • 27:00 - Consultar o formato, o total de dados e o nĂşmero de dimensões.
  • 32:00 - Acrescentar um eixo novo, e como a posição dele muda a orientação.
  • 40:00 - Filtrar por condição, trazendo apenas os valores que interessam.
  • 53:00 - A prova de velocidade: a mesma operação feita em lista e em array.

Trechos do vĂ­deo:

  • O array sĂł aceita um tipo de dado. Ao inserir um texto no meio de nĂşmeros, todos os valores viram texto, e Ă© justamente essa uniformidade que torna o processamento mais rápido.
  • Na medição feita na aula, multiplicar duas sequĂŞncias grandes levou cerca de trĂŞs segundos e meio com listas e quatro centĂ©simos de segundo com arrays.

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).

Codigo
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.

Codigo
zero_array = np.zeros(shape = (5,3,6))
print(zero_array)
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).

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

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

Codigo
# 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

Para o np.arange, 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

Codigo
array_linear = np.linspace(0, 100 , num = 20, endpoint = False, retstep = True)
print(array_linear)
Criando uma sequĂŞncia 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 20 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

Codigo
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

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Ăł.

Codigo
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

À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

Codigo
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

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

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

print(a.max())
print(a.min())
print(a.mean())
print(a.sum())
Biblioteca Numpy no Python

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

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

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

Biblioteca Numpy no Python

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.

Codigo
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 Ă© 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,'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!

Perguntas frequentes

1. Qual a diferença entre um array NumPy e uma lista do Python?

O array exige que todos os elementos sejam do mesmo tipo e é processado de forma vetorizada, o que o torna muito mais rápido e econômico em memória. A lista aceita tipos misturados, como números e textos juntos, mas fica lenta em cálculos com grandes volumes de dados.

2. Como instalar a biblioteca NumPy?

Execute pip install numpy no terminal ou no Anaconda Prompt. Em seguida, importe no código com import numpy as np: o apelido np é a convenção usada na documentação e nos projetos. Em distribuições como o Anaconda, a biblioteca já costuma vir instalada por padrão.

3. O que significam shape, size e ndim no NumPy?

São atributos que descrevem um array: shape mostra as dimensões (por exemplo, 5 matrizes de 3 linhas e 6 colunas), size traz o total de elementos e ndim informa o número de dimensões. Eles ajudam a inspecionar conjuntos grandes sem precisar imprimir tudo na tela.

4. Quando usar NumPy e quando usar Pandas?

Use o NumPy para cálculos numéricos puros com arrays homogêneos, como operações matemáticas em massa, estatísticas e álgebra linear. O Pandas, construído sobre o NumPy, é a escolha para dados tabulares com rótulos, como planilhas e arquivos CSV. Em projetos de ciência de dados, os dois trabalham juntos.

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!


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

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos