Indexação, fatiamento e indexação avançada
Fatiamento básico, máscara booleana, indexação avançada e np.where() para seleção condicional.
Indexação, fatiamento e indexação avançada é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Noções básicas de indexação
As matrizes do NumPy usam indexação baseada em zero, como as listas do Python. Os índices negativos contam a partir do fim.
import numpy as np
a = np.array([10, 20, 30, 40, 50])
print(a[0]) # 10
print(a[-1]) # 50Fatiamento 1D
Os fatiamentos usam start:stop:step e retornam uma visão (não uma cópia), portanto modificar um fatiamento altera o original.
print(a[1:4]) # [20 30 40]
print(a[::2]) # [10 30 50]
view = a[1:3]
view[0] = 99
print(a) # [10 99 30 40 50]Indexação 2D [linha, coluna]
Para matrizes 2D, faça a indexação com um único par de colchetes contendo as duas coordenadas: m[row, col]. Isso é mais limpo e rápido do que m[row][col].
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m[1, 2]) # 6
print(m[0, 0]) # 1Fatiamento de Linhas e Colunas
Use dois-pontos para selecionar um eixo inteiro. m[:, 1] seleciona a coluna 1 em todas as linhas.
print(m[0, :]) # first row: [1 2 3]
print(m[:, 1]) # second col: [2 5 8]
print(m[1:, :2]) # bottom-left blockMáscaras Booleanas
Uma comparação produz uma matriz booleana com o mesmo formato. Fazer a indexação com essa máscara mantém apenas as posições verdadeiras.
a = np.array([5, 12, 7, 20, 3])
mask = a > 8
print(mask) # [False True False True False]
print(a[mask]) # [12 20]Combinação de Condições
Use & (e) e | (ou) elemento a elemento, com parênteses. As palavras-chave Python and/or têm comportamento NOT compatível com matrizes.
print(a[(a > 4) & (a < 15)]) # [ 5 12 7]Atribuição por Meio de uma Máscara
É possível escrever nas posições selecionadas pela máscara para limpar os dados no próprio lugar, por exemplo limitando valores discrepantes a um teto.
a = np.array([5, 12, 7, 20, 3])
a[a > 10] = 10
print(a) # [ 5 10 7 10 3]Indexação Avançada com Matrizes
Passe uma matriz (ou lista) de índices inteiros para selecionar elementos arbitrários em qualquer ordem, possivelmente com repetições. Isso retorna uma cópia, não uma visão.
a = np.array([10, 20, 30, 40, 50])
idx = [4, 0, 2, 2]
print(a[idx]) # [50 10 30 30]Indexação Avançada em 2D
Forneça duas matrizes de índices para selecionar pares específicos de (linha, coluna). Aqui, selecionamos os cantos da diagonal.
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
rows = [0, 2]
cols = [0, 2]
print(m[rows, cols]) # [1 9]Seleção Condicional com np.where
np.where(cond, x, y) retorna elementos de x onde a condição é verdadeira e de y nos demais casos: uma estrutura se-então vetorizada.
a = np.array([-2, 5, -7, 3])
print(np.where(a < 0, 0, a)) # [0 5 0 3] (clip negatives)np.where para Encontrar Índices
Quando chamado com um argumento, np.where(cond) retorna os índices onde a condição é satisfeita.
a = np.array([10, 20, 30, 40])
print(np.where(a > 15)) # (array([1, 2, 3]),)Verificação rápida
Teste suas habilidades de indexação.
Recapitulação
Técnicas de seleção:
- Índice e fatiamento básicos (fatiamentos são visões)
- Acesso 2D com
m[row, col]e eixo inteiro com: - Máscaras booleanas com
&e| - Indexação avançada com matrizes de índices (retorna uma cópia)
np.where(cond, x, y)para uma estrutura se-então vetorizada
Perguntas Frequentes
A aula “Indexação, fatiamento e indexação avançada” é grátis?
Sim — o texto completo de “Indexação, fatiamento e indexação avançada” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Indexação, fatiamento e indexação avançada”?
Fatiamento básico, máscara booleana, indexação avançada e np.where() para seleção condicional. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Indexação, fatiamento e indexação avançada”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação e propriedades de matrizes
- Indexação, fatiamento e indexação avançada
- Transmissão e operações vetorizadas
- Álgebra linear com NumPy