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
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.
import numpy
matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[1:4])
matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[1:4])
É 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
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.
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:])
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:])
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])
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
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.
import numpy
matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[0:6:2])
matriz = numpy.array([1, 2, 3, 4, 5, 6])
print(matriz[0:6:2])
Exemplo
import numpy
matriz = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print(matriz[::2])
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])
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
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.
import numpy
matriz = numpy.array([[1, 2, 3], [4, 5, 6]])
print(matriz[0:2, 1])
matriz = numpy.array([[1, 2, 3], [4, 5, 6]])
print(matriz[0:2, 1])
0 comentários:
Postar um comentário