Array Shape & Reshape em NUMPY
Nesta postagem, vamos nos aprofundar nos detalhes da forma e remodelagem do array NumPy , cobrindo os fundamentos da remodelação de arrays Numpy e o uso da função reshape() para alterar a forma de um array.
Forma de Matriz NumPy
A forma de uma matriz refere-se ao número de elementos ao longo de cada dimensão da matriz.
As matrizes Numpy podem ter uma ou mais dimensões, e a forma de uma matriz é representada como uma tupla de inteiros, onde cada inteiro representa o tamanho de uma matriz ao longo de uma dimensão específica.
Compreender a forma de uma matriz é crucial para manipular e processar dados com eficiência no Numpy , bem como para selecionar e fatiar elementos de matrizes.
Nesta seção do artigo, exploraremos o conceito de formato de array e como acessar e modificar o formato de array Numpy .
Obter forma de matriz NumPY
No formato Numpy Array , os arrays Numpy possuem um atributo conhecido como shape que fornece uma tupla com o número de itens para cada índice.
A forma de uma matriz 2-D pode ser exibida da seguinte forma:
NumPy Array Shape Example: 1
Conforme o exemplo acima, retornamos (2, 6), que indica que o array possui duas dimensões, e cada dimensão possui seis itens.
Uma forma de matriz 3D pode ser representada da seguinte forma:
NumPy Array Shape Example: 2
No exemplo acima, indica que o array possui três dimensões, e cada dimensão possui três itens.
Com ndmin, gere um array de 9 dimensões com os elementos 2, 3, 5, 7, 11, 13, 17, 19 e certifique-se de que a dimensão final tenha o valor 8:
NumPy Array Shape Example: 3
Utilizando ndmin, construa uma matriz de 6 dimensões com os componentes B, C, D, F, G, H e certifique-se de que a última dimensão seja 6:
NumPy Array Shape Example: 4
Como funciona a tupla de forma?
A tupla de forma em Numpy representa as dimensões de uma matriz, com cada inteiro na tupla indicando o tamanho da dimensão correspondente .
Em outras palavras, números inteiros em cada índice nos dizem quantos itens existem na respectiva dimensão.
De acordo com o exemplo acima, o índice-6 tem valor 6, então a 6ª (5 + 1) dimensão tem 6 componentes.
Remodelagem da Matriz NumPy
Nesta seção do artigo, exploramos a reformulação do array Numpy com exemplos na expectativa de cumprir os objetivos de aprendizado.
A função reshape() no Numpy é usada para alterar a forma de uma matriz, permitindo uma representação flexível dos dados.
Essa função recebe dois argumentos: o primeiro argumento é a matriz que você deseja remodelar e o segundo argumento é a forma desejada, que é especificada como uma tupla.
Remodelar uma matriz
A reformulação da matriz Numpy é o processo de alterar a forma de uma matriz.
É o número de itens em cada dimensão que define a forma de uma matriz.
O usuário pode inserir ou excluir dimensões ou modificar o número de itens em cada dimensão remodelando.
Remodelar de 1-D para 2-D
As matrizes 1-D a seguir têm 7 componentes. Transforme-o em uma matriz 2-D.
Example:
No exemplo acima, primeiro importamos a biblioteca Numpy como npy por conveniência. Em seguida, criamos um array Numpy unidimensional chamado fatorial_arr que contém os valores dos fatoriais de 1 a 8.
Em seguida, usamos a função reshape() no array factorial_arr para alterar sua forma de ( 8, ) para ( 2, 4 ). Esta função retorna um novo array com a forma desejada, que é armazenado em uma nova variável chamada mrx_arr.
Por fim, imprimimos o array mrx_arr usando a função print() . A saída desse código seria:
array([[ 1, 2, 6, 24], [ 120, 720, 5040, 40320]])
Como podemos ver, o array mrx_arr foi reformulado em um array bidimensional com 2 linhas e 4 colunas.
Os elementos da matriz fatorial_arr original são reorganizados na nova matriz para corresponder à forma desejada ( 2, 4 ).
Another Example:
Remodelar de 1-D para 3-D
O código abaixo produziria a seguinte matriz remodelada tridimensional da matriz unidimensional original:
Example:
Example:
Neste exemplo, criamos um array Numpy unidimensional chamado palindrome_arr que contém uma lista de palavras palíndromo.
Em seguida, usamos a função reshape() no array palindrome_arr para alterar sua forma de ( 8 ,) para ( 2 , 2 , 2 ).
Esta função retorna um novo array com a forma desejada, que é armazenado em uma nova variável chamada mrx_arr .
Por fim, imprimimos o array mrx_arr usando a função print() .
Que formas podemos remodelar?
Em nossa exploração da reformulação da matriz Numpy, ela funciona, desde que os itens necessários em ambas as formas sejam idênticos.
Em uma matriz 1D com 8 itens, podemos remodelá-la em uma matriz 2D com 4 itens em 2 linhas, mas não em uma matriz 3D com 3 itens em 3 linhas.
Você pode transformar uma matriz 1D com 8 componentes em uma matriz 2D com 3 itens em cada dimensão seguindo estas etapas:
Example:
Example:
Descubra se o array resultante é uma cópia ou uma visão:
Example:
O código produziria o objeto base da matriz remodelada, que é o fatorial_arr unidimensional original:
Example:
No código acima, o palindrome_arr unidimensional original seria gerado como o objeto base da matriz reformulada.
Dimensão Desconhecida
Uma dimensão “ desconhecida ” é permitida.
Como discutimos com a reformulação da matriz Numpy, você não precisa inserir um número preciso para uma das dimensões.
O NumPy calculará esse número se você inserir -1 como valor.
Para transformar um array 1D de 8 elementos em um array 3D 2×2, siga os exemplos abaixo:
Example:
Example:
Achatando matrizes
O achatamento de matriz é o processo de transformar uma matriz multidimensional em uma matriz unidimensional utilizando Numpy .
Para fazer isso, podemos usar reshape(-1).
Torne a matriz uma dimensão, transformando-a da seguinte maneira: