Divisão de Matriz do NumPy

Dividir arrays NumPy

A divisão é a operação inversa da conexão.

Conexão (Joining) é a operação de combinar vários arrays em um, e divisão (Spliting) é dividir um array em múltiplos.

Usamos array_split() Dividir arrays, passe o array a ser dividido e o número de divisões ao método.

Exemplo

Dividir o array em 3 partes:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)

Executar exemplo

Notas:O valor retornado é um array que contém três arrays.

Se o número de elementos no array for menor do que o número solicitado, ele ajustará a partir do final accordingly.

Exemplo

Dividir o array em 4 partes:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)

Executar exemplo

Dica:Também temos split() O método está disponível, mas quando há poucos elementos no array de origem para dividir, ele não ajustará os elementos, como no exemplo acima,array_split() trabalha normalmente, mas split() irá falhar.

Dividir em arrays

array_split() O valor retornado pelo método é um array que contém cada divisão.

Se dividir um array em 3 arrays, você pode acessá-los como se fossem elementos de qualquer array de resultados:

Exemplo

Acessar o array dividido:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])

Executar exemplo

Dividir arrays bidimensionais

Ao dividir arrays bidimensionais, use a mesma sintaxe.

Use array_split() Método, passe o array a ser dividido e o número de divisões desejado.

Exemplo

Divida este array 2-D em três arrays 2-D.

import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)

Executar exemplo

O exemplo anterior retorna três arrays 2-D.

Vamos ver outro exemplo, desta vez cada elemento do array 2-D contém 3 elementos.

Exemplo

Divida este array 2-D em três arrays 2-D.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)

Executar exemplo

O exemplo anterior retorna três arrays 2-D.

Além disso, você pode especificar o eixo para dividir.

O exemplo a seguir também retorna três arrays 2-D, mas eles são divididos ao longo das linhas (axis=1).

Exemplo

Divida este array 2-D em três arrays 2-D ao longo das linhas.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)

Executar exemplo

Outra solução é usar com hstack() Contrário hsplit().

Exemplo

Use o método hsplit() para dividir um array 2-D em três arrays 2-D ao longo das linhas.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)

Executar exemplo

Dica:vsplit() e dsplit() Você pode usar com vstack() e dstack() Métodos alternativos semelhantes.