Fatiamento de matriz Numpy

Resumo : neste tutorial, você aprenderá sobre o fatiamento de array numpy que extrai um ou mais elementos de um array numpy.

Fatiamento de matriz numpy em matrizes tridimensionais

Matrizes NumPy usam colchetes []e :notações para fatiar listas semelhantes . Usando fatias, você pode selecionar um intervalo de elementos em uma matriz com a seguinte sintaxe:

[m:n]Linguagem de código:  Python  ( python )

Esta fatia seleciona elementos começando me terminando com n-1. Observe que o enésimo elemento não está incluído. Na verdade, a fatia m:npode ser definida explicitamente como:

[m:n:1]Linguagem de código:  Python  ( python )

O número 1 especifica que a fatia seleciona todos os elementos entre me n.

Para selecionar a cada dois elementos, você pode usar a seguinte fatia:

[m:n:2]Linguagem de código:  Python  ( python )

Em geral, a seguinte expressão seleciona todos os kelementos entre me n:

[m:n:k]Linguagem de código:  Python  ( python )

Se kfor negativo, a fatia retorna os elementos em ordem inversa, começando de maté n+1. A tabela a seguir ilustra as expressões de fatiamento:

Expressão de fatiamento Significado
a[m:n] Selecione elementos com um índice começando em m e terminando em n-1.
a[:]oua[0:-1] Selecione todos os elementos em um determinado eixo
a[:n] Selecione elementos começando com índice 0 e até elemento com índice n-1
a[m:] Selecione os elementos começando com o índice me até o último elemento
a[m:-1] Selecione os elementos começando com o índice me até o último elemento
a[m:n:k] Selecione elementos com índice m a n (exclusivo), com incremento k
a[::-1] Selecione todos os elementos na ordem inversa

Veja o exemplo a seguir:

import numpy as np

a = np.arange(0, 10)

print('a=', a)
print('a[2:5]=', a[2:5])
print('a[:]=', a[:])
print('a[0:-1]=', a[0:-1])
print('a[0:6]=', a[0:6])
print('a[7:]=', a[7:])
print('a[5:-1]=', a[5:-1])
print('a[0:5:2]=', a[0:5:2])
print('a[::-1]=', a[::-1])Linguagem de código:  Python  ( python )

Saída:

a= [0 1 2 3 4 5 6 7 8 9]
a[2:5]= [2 3 4]
a[:]= [0 1 2 3 4 5 6 7 8 9] 
a[0:-1]= [0 1 2 3 4 5 6 7 8]
a[0:6]= [0 1 2 3 4 5]
a[7:]= [7 8 9]
a[5:-1]= [5 6 7 8]
a[0:5:2]= [0 2 4]
a[::-1]= [9 8 7 6 5 4 3 2 1 0]Linguagem de código:  Python  ( python )

Fatiamento de matriz numpy em matrizes multidimensionais

Para fatiar uma matriz multidimensional, você aplica os colchetes []e a :notação a cada dimensão (ou eixo). A fatia retorna uma matriz reduzida onde cada elemento corresponde às regras de seleção. Por exemplo:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])


print(a[0:2, :])Linguagem de código:  Python  ( python )

Saída:

[[1 2 3]
 [4 5 6]]Linguagem de código:  Python  ( python )
fatiamento de array numpy - array 2d

Neste exemplo, a matriz a é uma matriz 2-D. Na expressão a[0:2, :]:

Primeiro, 0:2seleciona o elemento nos índices 0 e 1, não 2, que retorna:

[[1 2 3]
[4 5 6]]Linguagem de código:  Python  ( python )

Em seguida, :selecione todos os elementos. Portanto, toda a expressão retorna:

[[1 2 3]
 [4 5 6]]Linguagem de código:  Python  ( python )

Considere outro exemplo:

import numpy as np

a = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

print(a[1:, 1:])Linguagem de código:  Python  ( python )

Saída:

[[5 6]
 [8 9]]Linguagem de código:  Python  ( python )
fatiamento de array numpy - array 2d

Na expressão a[1:, 1:]:

Primeiro, 1:seleciona os elementos começando no índice 1 até o último elemento do primeiro eixo (ou linha), que retorna:

[[4 5 6]
[7 8 9]]Linguagem de código:  Python  ( python )

Segundo, 1:seleciona os elementos começando no índice 1 até os últimos elementos do segundo eixo (ou coluna), que retorna:

[[5 6]
 [8 9]]Linguagem de código:  Python  ( python )

Resumo

  • Use o fatiamento para extrair elementos de uma matriz numpy
  • Use a[m:n:p]para fatiar matrizes unidimensionais.
  • Use a[m:n:p, i:j:k, ...]para fatiar matrizes multidimensionais

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *