logo

numpy.reshape() em Python

A função numpy.reshape() está disponível no pacote NumPy. Como o nome sugere, remodelar significa “mudanças de forma”. A função numpy.reshape() nos ajuda a obter uma nova forma para um array sem alterar seus dados.

Às vezes, precisamos remodelar os dados de largos para longos. Portanto, nesta situação, temos que remodelar o array usando a função reshape().

Sintaxe

 numpy.reshape(arr, new_shape, order='C') 

Parâmetros

Existem os seguintes parâmetros da função reshape():

1) arr: array_like

Este é um ndarray. Este é o array de origem que queremos remodelar. Este parâmetro é essencial e desempenha um papel vital na função numpy.reshape().

variáveis ​​globais javascript

2) new_shape: int ou tupla de ints

A forma na qual queremos converter nosso array original deve ser compatível com o array original. Se for um número inteiro, o resultado será uma matriz 1-D desse comprimento. Uma dimensão de forma pode ser -1. Aqui, o valor é aproximado pelo comprimento da matriz e pelas dimensões restantes.

3) ordem: {'C', 'F', 'A'}, opcional

O parâmetro de ordem desses índices desempenha um papel crucial na função reshape(). Essas ordens de índice são usadas para ler os elementos da matriz de origem e colocar os elementos na matriz remodelada usando esta ordem de índice.

  1. A ordem do índice 'C' significa ler/gravar os elementos que estão usando uma ordem de índice semelhante à C, onde o índice do último eixo muda mais rápido, de volta ao índice do primeiro eixo mudando mais lentamente.
  2. A ordem do índice 'F' significa ler/escrever os elementos que estão usando a ordem do índice do tipo Fortran, onde o índice do último eixo muda mais lentamente e o índice do primeiro eixo muda mais rápido.
  3. A ordem 'C' e 'F' não ocupa nenhuma quantidade do layout de memória da matriz subjacente e refere-se apenas à ordem de indexação.
  4. A ordem do índice 'A' significa ler/escrever os elementos na ordem do índice do tipo Fortran, quando arr é contíguo na memória, caso contrário, use a ordem do tipo C.

Devoluções

Esta função retorna um ndarray. É um novo objeto de visualização, se possível; caso contrário, será uma cópia. Não há garantia do layout da memória da matriz retornada.

Exemplo 1: ordenação de índice semelhante a C

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Saída:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array 'a' usando a função np.arrange().
  • Declaramos a variável 'y' e atribuímos o valor retornado da função np.reshape().
  • Passamos o array 'x' e a forma na função.
  • Por último, tentamos imprimir o valor de arr.

Na saída, a matriz foi representada como três linhas e quatro colunas.

Exemplo 2: Equivalente a C ravel e depois C remodelar

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

A função ravel() é usada para criar um array achatado contíguo. Uma matriz unidimensional que contém os elementos da entrada é retornada. Uma cópia é feita somente quando necessária.

construtor de string java

Saída:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Exemplo 3: ordenação de índice semelhante a Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Saída:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array 'a' usando a função np.arrange().
  • Declaramos a variável 'y' e atribuímos o valor retornado da função np.reshape().
  • Passamos o array 'x' e a forma e a ordem do índice do tipo Fortran na função.
  • Por último, tentamos imprimir o valor de arr.

Na saída, a matriz foi representada como quatro linhas e três colunas.

Exemplo 4: ordenação de índice semelhante a Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Saída:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Exemplo 5: O valor não especificado é inferido como 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array 'a' usando a função np.arrange().
  • Declaramos a variável 'y' e atribuímos o valor retornado da função np.reshape().
  • Passamos o array 'x' e a forma (valor não especificado) na função.
  • Por último, tentamos imprimir o valor de arr.

Na saída, a matriz foi representada como duas linhas e cinco colunas.

Saída:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])