quinta-feira, 9 de abril de 2020

Partindo uma matriz com NumPy

Partindo uma matriz com NumPy



Não é sempre que precisamos apenas de um elemento da matriz ou de uma matriz inteira. Muitas vezes precisamos de pedaços da matriz. Para obter esses pedaços da matriz precisamos fatiar a matriz. Quando vamos pegar um pedaço da matriz precisamos indicar de que elemento vai começar o nosso “corte” e o elemento final.
Exemplo
import numpy

matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[1:4])
Nesse exemplo vamos obter os números dois, três e quatro. Isso porque o fatiamento da matriz começou no segundo elemento e foi até o quarto elemento. Lembre-se que o index da matriz começa em zero. Uma boa maneira de entender melhor é imaginar uma divisão antes de cada numero. Assim os números que colocamos entre os colchetes não contam os elementos e sim essas divisões imaginarias. Por isso é apresentado três números e não quatro.
É possível pegar os elementos do começo de uma matriz até um determinado elemento. Ou de um determinado elemento até o fim da matriz.
Exemplo
import numpy

matriz = numpy.array([1, 2, 3, 4, 5, 6])
# do primeiro elemento até o quarto elemento
print(matriz[:4])
# do quinto elemento até o último
print(matriz[4:])
Repare que na segunda vez que chamamos a função print o quarto elemento não aparece. Isso porque não contamos os elementos, mas sim a divisão imaginaria entre cada número.

Partes de uma matriz com index negativo

É possível utilizar index negativo para acessar uma parte de uma matriz. A única diferença desse modo é que o index negativo começa do fim da matriz para o começo. E o index um faz referencia ao penúltimo elemento.
Exemplo
import numpy

matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[-3:-1])

Pulando elementos de um pedaço da matriz

Com as matrizes da biblioteca numpy é possível acessar um determinado numero de elementos dentro de uma faixa predefinida. Na matriz além de definir a faixa de elementos que você que acessar é possível definir o numero de elementos que vão ser salteados. Por exemplo, no exemplo acima se você quisesse obter os números um, três e cinco era só definir a faixa do elemento zero até o sexto elemento e o passo sendo dois. Lembre que nas faixas contamos as divisões imaginarias antes dos números.
Exemplo
import numpy

matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[0:6:2])
Não é preciso indicar uma faixa se quiséssemos acessar todos os elementos da matriz de acordo com o passo. Assim só precisamos definir o passo.
Exemplo
import numpy

matriz = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print(matriz[::2])

Partindo uma matriz de duas dimensões

Com as matrizes de duas dimensões o conceito é o mesmo. Primeiro indicamos o index da matriz de uma dimensão e depois indicamos a faixa que queremos acessar. Imagine que precisamos pegar os três últimos elementos dessa matriz: [[1, 2, 3], [4, 5, 6]]. Assim vamos indicar o index da matriz com uma dimensão que queremos acessar, no caso um, e definimos a faixa que queremos.
Exemplo
import numpy

matriz = numpy.array([[1, 2, 3], [4, 5, 6]])
print(matriz[1, 0:3])

Acessando dois elementos com o mesmo index

Numa matriz com duas dimensões é possível acessar dois elementos, um elemento de cada matriz, com o mesmo index. Para isso indicamos o intervalo (que deve abranger as duas matrizes) e o index dos dois elementos das matrizes.
Exemplo
import numpy

matriz = numpy.array([[1, 2, 3], [4, 5, 6]])
print(matriz[0:2, 1])
Note que o intervalo se refere às duas matrizes e o index ao index do elemento em cada matriz. Nesse caso o intervalo são as duas matrizes e o index é o do número dois e do número cinco.

0 comentários:

Postar um comentário