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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.
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!