Resumo : neste tutorial, você aprenderá como usar a split()
função NumPy para dividir um array em vários submatrizes.
Introdução à função NumPy split()
A
função divide um array em vários submatrizes como visualizações. A sintaxe da split()
função é a seguinte:split()
numpy.split(ary, indices_or_sections, axis=0)
Linguagem de código: Python ( python )
Nesta sintaxe:
ary
é a matriz a ser dividida em submatrizes.
indices_or_sections
pode ser um número inteiro ou uma matriz 1-D de números inteiros classificados.
Se for um número inteiro, a função divide a matriz de entrada em N matrizes iguais ao longo do eixo. Se a divisão não for possível, a função gerará um erro.
Se índices_ou_seções for um array 1D de inteiros classificados, os índices indicam onde ao longo do eixo a função divide o array.
Quando um índice excede a dimensão da matriz ao longo do eixo, a função retorna uma submatriz vazia.
A imagem a seguir mostra como a split()
função divide o array com os índices 2, 3 e 4. Isso resulta em 4 arrays.
Exemplo de função NumPy split()
Vejamos alguns exemplos de uso da split()
função.
1) Usando a função split() para dividir um array 1D
O exemplo a seguir usa a split()
função para dividir uma matriz 1D com sete elementos em três submatrizes:
import numpy as np
a = np.arange(1,7)
results = np.split(a,3)
print(a)
print(results)
Linguagem de código: Python ( python )
Saída:
[1 2 3 4 5 6]
[array([1, 2]), array([3, 4]), array([5, 6])]
Linguagem de código: Python ( python )
O exemplo a seguir gera um erro porque a divisão não é possível:
import numpy as np
a = np.arange(1,7)
results = np.split(a,4)
Linguagem de código: Python ( python )
Saída:
ValueError: array split does not result in an equal division
Linguagem de código: Python ( python )
Neste exemplo, o array possui 6 elementos, portanto não pode ser dividido em 4 arrays de tamanho igual. Se quiser uma divisão mais flexível, você pode usar a array_split()
função.
2) Usando a função split() para dividir um array 2D
O exemplo a seguir usa a split()
função para dividir uma matriz 2D em duas submatrizes:
import numpy as np
a = np.array([[1,2],[3,4],[5,6],[7,8]])
results = np.split(a,2)
print(a)
print(results)
Linguagem de código: Python ( python )
Saída:
[[1 2]
[3 4]
[5 6]
[7 8]]
[array([[1, 2],
[3, 4]]), array([[5, 6],
[7, 8]])]
Linguagem de código: Python ( python )
3) Usando a função NumPy split() usando índices
O exemplo a seguir usa a split()
função para dividir um array 1D usando um array de índices:
import numpy as np
a = np.arange(10,70,10)
results = np.split(a, [2, 3, 4])
print(a)
print(results)
Linguagem de código: Python ( python )
Saída:
[1 2 3 4 5 6]
[array([1, 2]), array([3]), array([4, 5, 6])]
Linguagem de código: Python ( python )
Resumo
- Use
split()
a função NumPy para dividir um array em submatrizes.