Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Reshape de dimensão 5x3 não funcionando

Tentei fazer a mudança de linha para coluna dos seguintes dados:

dados_new[2] = dados_new[0]/(2023 - dados_new[1])
dados_new

Obtive o seguinte array:

array([[44410,  5712, 37123,     0, 25757],
           [ 2003,  1991,  1990,  2019,  2006],
           [ 2220,   178,  1124,     0,  1515]])

Usei o seguinte código para fazer a mudança de linha para coluna:

np.array(dados_new).reshape((5,3), order = "F")

Porém obtive a seguinte saída:

array([[44410,   178,  2019],
           [ 2003, 37123,     0],
           [ 2220,  1990, 25757],
           [ 5712,  1124,  2006],
           [ 1991,     0,  1515]])

Comparei com a resposta de um comentário anterior e não encontrei diferença. Alguém consegue me ajudar?

3 respostas

Oi Naielly,

Não sei se entendi bem. O resultado do reshape está correto. Ele mudou para um array de 5 linhas e 3 colunas. Não seria a transposta do array que você quer calcular? Neste caso, basta fazer:

 dados_new.T

Queria deixar como transposta mesmo. Mas não consigo fazer isso com a mudança do reshape?

Usei o exemplo abaixo com um array de duas dimensões: Insira aqui a descrição dessa imagem para ajudar na acessibilidade Queria fazer da mesma forma. Pelo que entendi nesse exemplo, ele pegaria a primeira linha e colocaria como coluna e depois a segunda linha. No exemplo que mandei anteriormente ele pegou por coluna. Qual a diferença dado que usamos os mesmo parâmetros ?

solução!

Entendi. Na verdade a reshape independente do order utilizado tenta manter o máximo de números em sequência. Por exemplo, com o order 'C' ele escreve a primeira linha com os três primeiros elementos que já estavam lá e depois continua a segunda linha com os elementos seguintes da primeira linha. Com o order F ele vai fazer isso com as colunas. Em resumo, não vai dar o mesmo resultado da transposta. Se aconteceu de alguém obter o mesmo resultado da transposta está usando uma matriz muito específica ou uma versão da numpy que trabalha de forma diferente. Por enquanto temos que usar o .T ou o np.transpose para calcular a transposta mesmo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software