Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alterar a forma

Olá, estou em dúvida referente ao resize também alterar a forma do meu array, gostaria de saber o que é referido como "forma", já que a alteração do tamanho, já é dado como uma alteração da forma/formato.

Fiquei com esta dúvida.

1 resposta
solução!

Olá, Antônio! Tudo bom? Espero que sim.

Apontamento bastante interessante. Podemos começar analisando um array unidimensional, análogo de uma lista simples no Python. Se o método resize apenas alterasse o tamanho desse array, nós teríamos a quantidade de elementos menor ou maior que o estado inicial, e ele continuaria sem alterar a forma (shape) do array.

Mas a proposta do resize é modificar o formato do array (shape), fazendo o preenchimento dos elementos se for necessário para o novo formato.

No caso dos arrays bidimensionais, a quantidade de linhas ou colunas, e os elementos que faltarem, serão preenchidos novamente pelo mesmo array, considerando a posição inicial dos índices.

Segue o exemplo retirado da documentação do Numpy:

a=np.array([[0,1],[2,3]])
np.resize(a,(2,3))
>>> array([[0, 1, 2],
           [3, 0, 1]])
np.resize(a,(1,4))
>>> array([[0, 1, 2, 3]])
np.resize(a,(2,4))
>>> array([[0, 1, 2, 3],
          [0, 1, 2, 3]])

Já o reshape, aplica apenas uma modificação do formato sem alterar a quantidade original de elementos, então nós escolhemos o novo shape do array, e se quantidade de elementos permitir a modificação, a operaçao é executada. E esta última verificação não acontece no resize, pois ele altera a quantidade de elementos (tamanho) se for preciso.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Não é necessário fechar o tópico, outras pessoas podem ser ajudadas por ele :D