A biblioteca Numpy é uma das ferramentas mais poderosas e essenciais para quem trabalha com ciência de dados e programação em Python. Ela permite realizar operações complexas em matrizes e vetores de maneira eficiente e simplificada. Uma das funcionalidades mais úteis do Numpy é a indexação avançada, que permite acessar e modificar elementos de arrays de formas não convencionais. Neste tutorial, vamos explorar como realizar indexação avançada no Numpy.
O que é Indexação Avançada?
A indexação avançada ocorre quando um array Numpy é indexado por outro array ou por qualquer outra sequência não trivial. Diferente da indexação simples, que utiliza slices e inteiros, a indexação avançada permite realizar operações mais complexas, como filtrar elementos, acessar elementos não contíguos e realizar operações booleanas.
Indexação Booleana
Uma das formas mais comuns de indexação avançada é a indexação booleana. Ela permite selecionar elementos de um array que atendem a uma determinada condição. Por exemplo:
import numpy as np
dados = np.random.randint(0, 20, size=(5,5))
print(dados > 10) # Retorna uma matriz booleana
A matriz booleana resultante pode ser usada para indexar o array original:
print(dados[dados > 10]) # Retorna os elementos maiores que 10
Indexação com Arrays de Inteiros
Outra forma de indexação avançada é utilizando arrays de inteiros. Isso permite acessar elementos específicos e em uma ordem definida:
a = np.array([1,2,3,4,5,6,7,8,9,10])
print(a[[1, 2, 9]]) # Retorna os elementos nas posições 1, 2 e 9
Desafio Final de Indexação Avançada
Para solidificar o aprendizado, vamos resolver um desafio utilizando indexação avançada. Considere a seguinte matriz:
m = np.arange(1,31).reshape([6,5])
Agora, vamos realizar as seguintes operações:
- Retorne a última linha da matriz utilizando índices negativos.
- Crie uma matriz utilizando os números 19, 20, 24, 25.
- Calcule a média dos valores das últimas 3 linhas.
- Retorne a diagonal que vai do número 2 até o número 20.
- Crie uma matriz do tipo:
| 4 | 5 |
|---|---|
| 24 | 25 |
| 29 | 30 |
A solução para esses desafios envolve o uso de indexação avançada e slicing. Por exemplo, para retornar a última linha da matriz, você pode usar:
print(m[-1,])
Para os demais desafios, você precisará aplicar técnicas similares, utilizando a indexação avançada para acessar e manipular os elementos da matriz m
.
Conclusão
A indexação avançada no Numpy é uma ferramenta poderosa que abre um leque de possibilidades para manipulação de dados. Com a prática, você se tornará cada vez mais hábil em utilizar essas técnicas para extrair, transformar e analisar dados de maneira eficiente. Continue explorando e experimentando com diferentes tipos de indexação para aprimorar suas habilidades em Numpy e Python.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários