Fatiamento de matriz NumPy


Fatiar matrizes

Fatiar em python significa levar elementos de um determinado índice para outro determinado índice.

Passamos slice em vez de index assim: .[start:end]

Também podemos definir o passo, assim: .[start:end:step]

Se não passarmos start é considerado 0

Se não passarmos o comprimento considerado da matriz nessa dimensão

Se não passarmos o passo é considerado 1

Exemplo

Fatie os elementos do índice 1 ao índice 5 da seguinte matriz:

import numpy as np

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

print(arr[1:5])

Nota: O resultado inclui o índice inicial, mas exclui o índice final.

Exemplo

Fatie os elementos do índice 4 até o final da matriz:

import numpy as np

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

print(arr[4:])

Exemplo

Fatiar elementos do início ao índice 4 (não incluído):

import numpy as np

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

print(arr[:4])


Fatiamento Negativo

Use o operador menos para se referir a um índice a partir do final:

Exemplo

Fatia do índice 3 do final para o índice 1 do final:

import numpy as np

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

print(arr[-3:-1])

DEGRAU

Use o stepvalor para determinar a etapa do fatiamento:

Exemplo

Retorne todos os outros elementos do índice 1 ao índice 5:

import numpy as np

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

print(arr[1:5:2])

Exemplo

Retorne todos os outros elementos de todo o array:

import numpy as np

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

print(arr[::2])

Fatiando matrizes 2-D

Exemplo

Do segundo elemento, corte os elementos do índice 1 ao índice 4 (não incluído):

import numpy as np

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

print(arr[1, 1:4])

Nota: Lembre-se que o segundo elemento tem índice 1.

Exemplo

De ambos os elementos, retorne o índice 2:

import numpy as np

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

print(arr[0:2, 2])

Exemplo

De ambos os elementos, slice index 1 to index 4 (não incluído), isso retornará um array 2-D:

import numpy as np

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

print(arr[0:2, 1:4])

Teste-se com exercícios

Exercício:

Insira a sintaxe de fatiamento correta para imprimir a seguinte seleção da matriz:

Tudo, desde (incluindo) o segundo item até (não incluindo) o quinto item.

arr = np.array([10, 15, 20, 25, 30, 35, 40])

print(arr)