Indexação Avançada NumPy

Beginner

Introdução

Neste laboratório, você aprenderá sobre indexação avançada do NumPy, que é uma técnica usada para selecionar elementos aleatórios de diferentes linhas e colunas de um ndarray quando os elementos que você deseja escolher não estão em uma sequência específica.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido às limitações do Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importando as Bibliotecas Necessárias e Criando o Array NumPy

Primeiramente, precisamos importar a biblioteca numpy e criar um array NumPy no qual realizaremos a indexação avançada.

import numpy as np

x = np.array([[11, 28], [23, 84], [95, 56]])
print("The original array")
print(x)

No código acima, importamos a biblioteca numpy e criamos um array NumPy que usaremos para indexação avançada.

Indexação Inteira

Usando a indexação inteira, podemos selecionar itens arbitrários com base no índice N-dimensional. Cada array de inteiros é usado para representar o número de índices naquela dimensão.

y = x[[0, 1, 2], [0, 0, 1]]
print("The output after integer indexing")
print(y)

No código acima, estamos realizando a indexação inteira no array NumPy x e criando um novo array y que conterá os elementos selecionados. Estamos selecionando um elemento da coluna especificada de cada linha do array NumPy x. O índice da linha contém todos os números das linhas, e o índice da coluna especifica o elemento a ser selecionado.

Indexação Booleana

A indexação booleana é usada quando queremos selecionar elementos de um ndarray com base em alguma condição usando operadores de comparação ou algum outro operador.

print("The items greater than 11 are:")
print(x[x > 11])

No código acima, estamos realizando a indexação booleana no array NumPy x. Estamos retornando os elementos que são maiores que 11 do array NumPy x.

Combinando Indexação Avançada e Básica

Podemos combinar indexação avançada e básica usando uma fatia (:) ou reticências (...) com um array de índices.

z = x[1:4, 1:3]
print("After using basic slicing")
print(z)

y = x[1:4, [1, 2]]
print("After slicing using advance index for column")
print(y)

No código acima, estamos fatiando o array NumPy x. Estamos usando fatiamento básico e indexação avançada para a coluna.

Remover Valores Não Numéricos (NaN)

Podemos remover valores "Not a Number" (NaN) usando o operador complemento (~).

a = np.array([np.nan, 1, 12, np.nan, 3, 41, 54])
print("After omitting NaN the output array is :")
print (a[~np.isnan(a)])

No código acima, estamos removendo valores "Not a Number" (NaN) do array NumPy a usando o operador complemento (~).

Remover Números Não Complexos

Podemos filtrar números não-complexos de um array usando a função iscomplex.

a = np.array([1, 2+6j, 5, 3.5+5j])
print("After filtering the non-complex numbers :")
print (a[np.iscomplex(a)])

No código acima, estamos filtrando números não-complexos do array NumPy a usando a função iscomplex.

Resumo

Neste laboratório, você aprendeu sobre diferentes tipos de indexação avançada de elementos ndarray na biblioteca NumPy. Você cobriu alguns exemplos para diferentes tipos de casos de uso para indexação avançada em NumPy. Usando esta técnica, você pode selecionar elementos aleatórios de diferentes linhas e colunas de um array NumPy.