Como Realizar Indexação Avançada no Numpy

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

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:

  1. Retorne a última linha da matriz utilizando índices negativos.
  2. Crie uma matriz utilizando os números 19, 20, 24, 25.
  3. Calcule a média dos valores das últimas 3 linhas.
  4. Retorne a diagonal que vai do número 2 até o número 20.
  5. 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.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial