1
resposta

Usar .T no lugar o order= 'C' em reshape

Boa tarde

Seria uma má pratica de codigo, no lugar do

contador.reshape((5, 2), order='C') para ordenar o array

eu usar o .T e ficar

np.array(info_carros).reshape((2, 5)).T ?

1 resposta

Bom dia Paulo Vitor, tudo bem com você?

Antes de te responder, vamos pensar no que o reshape faz. O reshape dá uma nova forma a uma matriz sem alterar seus dados. Agora, vamos olhar o formato da matriz info_carros no momento de criação. Temos o formato 1 linha e 10 colunas sendo: [44410, 5712, 37123, 0, 25757, 2003, 1991, 1990, 2019, 2006]

Desconsiderando o nosso cenário, pensando na matriz em si, teríamos duas formas de remodelar ela, uma sendo para 2 linhas e 5 colunas ou apenas (2,5) e a outra para 5 linhas e 2 colunas ou apenas (5,2).

Considerando o nosso cenário onde os primeiros 5 elementos são km dos carros 44410, 5712, 37123, 0, 25757 e os últimos cinco são os respectivos os anos 2003, 1991, 1990, 2019, 2006, e utilizando apenas o reshape, qual o formato separaria as informações de km e ano? O único formato que atende a nossa necessidade é a matriz (2,5), pois, teríamos na primeira linha km e a segunda linha ano. Vamos fazer isso então:

np.array(info_carros).reshape((2,5), order=’C’)

[[44410  5712 37123     0 25757] 
   [ 2003  1991  1990  2019  2006]] 

Legal, com isso já conseguimos organizar como queríamos. Olhando esse novo formato da matriz (2,5), percebemos que agora podemos apresentar as informações também da forma (5,2): Primeira coluna km e segunda coluna ano. Como transformamos linhas em colunas de uma matriz? Exatamente da forma que você fez! Utilizando a função T, que entrega a matriz transposta:

np.array(info_carros).reshape(2,5).T
[[44410  2003]
   [ 5712  1991]
   [37123  1990]
   [    0  2019]
   [25757  2006]]  

Respondendo a sua pergunta, não há boa ou má prática nesse caso, eu diria que a escolha entre uma matriz com (2,5) e a sua transposta (5,2), vai depender de como você vai precisar dessa matriz para futuras manipulações.

Espero ter ajudado e bons estudos =D

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