Divisão de Matriz NumPy

Nesta discussão, vamos nos aprofundar nas diferentes técnicas de divisão de matriz NumPy , incluindo o uso de funções como numpy.hsplit e numpy.array_split .

Esta função recebe o array que precisa ser dividido e o número de divisões desejadas como seus argumentos.

O objetivo desta função é quebrar um único array em múltiplos sub-arrays menores.



Exemplos de divisão de matriz NumPy

Divida a matriz prime_arr em quatro seções.

Example: 

1
2
3
4
5
6
7
import numpy as npy
prime_arr = npy.array([2, 3, 5, 7, 11, 13, 17, 19])
mrx_arr = npy.array_split(prime_arr, 4)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Divisão de Matriz NumPy

Faça três partições de array a partir do array prime_arr .

Example: 

1
2
3
4
5
6
7
import numpy as npy
cube_arr = npy.array([1, 8, 27, 64, 125, 216])
mrx_arr = npy.array_split(cube_arr, 3)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : Um valor de saída consiste em três matrizes.

A divisão da matriz Numpy será modificada do final apropriadamente se a matriz tiver menos elementos do que o necessário.

Separe o array even_arr em 4 subarrays:

Example: 

1
2
3
4
5
6
7
import numpy as npy
even_arr = npy.array([0, 2, 4, 6, 8, 10, 12, 14])
mrx_arr = npy.array_split(even_arr, 5)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Faça três subarrays do array even_arr :

Example: 

1
2
3
4
5
6
7
import numpy as npy
odd_arr = npy.array([1, 3, 5, 7, 9, 11, 13])
mrx_arr = npy.array_split(odd_arr, 3)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : Assim como array_split() , split() não modificará os itens quando houver menos itens no array de origem para divisão. Por exemplo, array_split() foi executado com êxito, mas split() não teve êxito.

Dividir em matrizes

Quando falamos sobre o array Numpy split , o método array_split() produz um array incluindo cada divisão.

Recupere o array que está dividido:

Example: 

1
2
3
4
5
6
7
8
9
10
import numpy as npy
fibonacci_arr = npy.array([ 0, 1, 1, 2, 3, 5, 8, 13])
mrx_arr = npy.array_split(fibonacci_arr, 4)
print(mrx_arr[0])
print(mrx_arr[1])
print(mrx_arr[2])
print(mrx_arr[3])
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A matriz que é separada pode ser obtida da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as npy
factorial_arr = npy.array([ 1, 2, 6, 24, 120, 720, 5040])
mrx_arr = npy.array_split(factorial_arr, 5)
print(mrx_arr[0])
print(mrx_arr[1])
print(mrx_arr[2])
print(mrx_arr[3])
print(mrx_arr[4])
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Matriz Numpy Dividindo 2-D

Dividir matrizes 2-D utilizando a mesma sintaxe. Simplesmente passe o array que você precisa dividir e o número de divisões que você precisa fazer para o método array_split() .

Faça cinco matrizes bidimensionais de uma matriz bidimensional.

Example: 

1
2
3
4
5
6
7
8
import numpy as npy
rational_arr = npy.array([[2.7, 3.84], [1.54, 3.22], [6.49, 5.11], [7.34, 8.96], [3.29,
7.33], [9.39, 9.99], [8.91, 6.16]])
mrx_arr = npy.array_split(rational_arr, 5)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A partir de uma matriz bidimensional palindrome_arr , crie cinco matrizes bidimensionais.

Example: 

1
2
3
4
5
6
7
8
import numpy as npy
palindrome_arr = npy.array([["101", "252"], ["25252", "89098"], ["1845481", "1010101"], ["3456543", "989"], ["9672769",
"24542"], ["01110", "225535522"], ["800008", "61216"]])
mrx_arr = npy.array_split(palindrome_arr, 5)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

As saídas dos dois exemplos acima fornecem cinco matrizes bidimensionais.

Obtenha quatro arrays bidimensionais particionando o array bidimensional ao meio.

Example: 

1
2
3
4
5
6
7
import numpy as npy
even_arr = npy.array([[0, 2, 4], [6, 8, 10], [12, 14, 16], [20, 22, 24], [26, 28, 30]])
mrx_arr = npy.array_split(even_arr, 4)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Divida a matriz bidimensional silentWords_arr em quatro matrizes bidimensionais.

Example: 

1
2
3
4
5
6
7
import numpy as npy
silentWords_arr = npy.array([['aplomb', 'bomb', 'abscess'], ['conscience', 'conscience', 'edge'], ['assign', 'align', 'handful'], ['descent', 'doubt', 'handkerchief'], ['fluorescent', 'breathe', 'muscle']])
mrx_arr = npy.array_split(silentWords_arr, 4)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Existem quatro matrizes bidimensionais geradas pelos dois exemplos acima.

Você também pode indicar em qual eixo você precisa dividir.

Monte três arrays bidimensionais em linhas a partir do array bidimensional.

Example: 

1
2
3
4
5
6
7
import numpy as npy
odd_arr = npy.array([[1, 3, 5], [7, 9, 11], [13, 15, 17], [19, 21, 23], [25, 27, 29]])
mrx_arr = npy.array_split(odd_arr, 3, axis=1)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Separe a matriz bidimensional em três matrizes bidimensionais em linhas.

Example: 

1
2
3
4
5
6
7
import numpy as npy
prime_arr = npy.array([[2, 3, 5], [7, 11, 13], [17, 19, 23], [27, 31, 33], [37, 41, 43]])
mrx_arr = npy.array_split(prime_arr, 3, axis=1)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A melhor abordagem é utilizar hsplit() em vez de hstack()

Para dividir a matriz bidimensional em três matrizes bidimensionais de acordo com as linhas, invoque o método hsplit() .

Example: 

1
2
3
4
5
6
7
import numpy as npy
odd_arr = npy.array([[1, 3, 5], [7, 9, 11], [13, 15, 17], [19, 21, 23], [25, 27, 29]])
mrx_arr = npy.hsplit(odd_arr, 3)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ao utilizar o método hsplit() , você pode separar uma matriz bidimensional em três matrizes bidimensionais com base em linhas.

Example: 

1
2
3
4
5
6
7
import numpy as npy
prime_arr = npy.array([[2, 3, 5], [7, 11, 13], [17, 19, 23], [27, 31, 33], [37, 41, 43]])
mrx_arr = npy.hsplit(prime_arr, 3)
print(mrx_arr)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No exemplo acima, importamos a biblioteca NumPy usando o alias npy.

Em seguida, criamos um array NumPy 2D chamado prime_arr, que possui 5 linhas e 3 colunas. Cada linha contém 3 números primos.

A função npy.hsplit() é usada para dividir o array prime_arr horizontalmente em 3 arrays.

Esta função divide o array em suas colunas, criando 3 arrays separados. Essas matrizes são então atribuídas à variável mrx_arr.

Finalmente, o código imprime o valor de mrx_arr. Isso deve gerar uma lista de 3 arrays, onde cada array tem 5 linhas e 1 coluna, contendo os números primos que estavam originalmente nas colunas correspondentes de prime_arr.

Lembrete : Um substituto adequado para vstack() e dstack() é vsplit() e dsplit().
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone