Dividindo arrays com NumPy
Dividir uma matriz com a função Split é fácil. É só passar como primeiro argumento a matriz que deseja dividir e como segundo argumento o numero de divisão. A função Split vai retornar uma lista com o numero de matrizes desejado. Por exemplo, dividindo uma matriz com seis elementos em três pedaços, a função Split vai retornar uma lista com três matrizes separadas.
Exemplo
Se a divisão não for exata a função Split vai lançar um erro. Tentar dividir uma matriz com sete elementos em três matrizes diferentes causa um erro porque a divisão não é exata. Para corrigir isso podemos utilizar a função array_split.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6])
matriz = np.split(array, 3)
print(matriz)
array = np.array([1, 2, 3, 4, 5, 6])
matriz = np.split(array, 3)
print(matriz)
Função array_split
A função array_split consegue dividir uma matriz em várias, mesmo que a divisão não seja exata. O elemento restante vai ser adicionado na primeira matriz. Por exemplo, se tentamos dividir uma matriz com sete elementos em três, vai sobrar um elemento. Na função Split ocorreria um erro, na função array_split a primeira matriz fica com mais elementos que as demais.
Exemplo
Nesse exemplo se a matriz tivesse oito elementos, para dividir em três, as duas primeiras matrizes ficariam com mais elementos que as demais.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7])
matriz = np.array_split(array, 3)
print(matriz)
array = np.array([1, 2, 3, 4, 5, 6, 7])
matriz = np.array_split(array, 3)
print(matriz)
Exemplo
A função array_split tenta acomodar os elementos restantes nas primeiras matrizes. Por isso quando a divisão de elementos por matriz não for exata, as primeiras matrizes ficaram com mais elementos que as demais.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
print(matriz)
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
print(matriz)
Acessando o resultado de array_split
Por ser uma lista de matrizes podemos acessar cada nova matriz diretamente com seu index.
Exemplo
Outro jeito de acessar essas array em uma lista é com o laço for.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
print(matriz[0])
print(matriz[1])
print(matriz[2])
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
print(matriz[0])
print(matriz[1])
print(matriz[2])
Exemplo
É bom lembrar que os elementos dessa matriz são objetos da classe numpy.
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
for i in matriz:
print(i)
array = np.array([1, 2, 3, 4, 5, 6, 7, 8])
matriz = np.array_split(array, 3)
for i in matriz:
print(i)
0 comentários:
Postar um comentário