Oi Rafaela! Tudo tranquilo e com você?
Sinto muito pela demora em dar um retorno.
1 - Primeira dúvida
Na maioria dos casos quando você transpõe seu array a posição dos seus elementos irão mudar. Vamos fazer um pequeno exemplo para vermos melhor isso:
# array original
x = np.array([[1.,2.],[3.,4.], [5.,6.]])
# Resultado
array([[1., 2.],
[3., 4.],
[5., 6.]])
Selecionando dois elementos (linha, coluna):
x[0,0]
# Resultado: 1.0
x[0,1]
# Resultado: 2.0
Se transpormos esse array, as linhas se transformarão em colunas e vice-versa, como ilustra a imagem abaixo:
Assim, apenas o primeiro elemento permanecerá na mesma posição, o restante ficará em localizações diferentes:
x_transposta = x.T
# Resultado
array([[1., 3., 5.],
[2., 4., 6.]])
Fazendo as mesmas seleções:
x_transposta[0,0]
# Resultado: 1.0
x_transposta[0,1]
# Resultado: 3.0
Sendo assim, para fazer seleções após a transposição do array, devem ser utilizadas as posições da nova configuração.
2 - Segunda dúvida
Nesse caso, acredito que você pode seguir as seguintes etapas:
1 - Colocar esses dados em um array numpy;
2 - Verificar a quantidade de elementos desse array por meio do size;
3 - Fazer o reshape.
Vou deixar um exemplo aqui utilizando os dados carros-km.txt que o professor utiliza no decorrer do curso.
# importando os dados
km = np.loadtxt('carros-km.txt')
# verificando se é do tipo numpy.ndarray
type(km)
# verificando a quantidade de elementos do array
km.size
# fazendo o reshape
km_novo = km.reshape(43,6)
Se por acaso seus dados estiverem armazenados em uma lista você pode converter essa lista para um array numpy, assim: dados = np.array(lista_com_dados)
3 - Terceira dúvida
Quando fazemos o reshape para organizar nossos dados, existem diferentes formas de ordenarmos essa organização. Não existe um que é mais ou menos usado, tudo vai depender da forma que você deseja organizar os seus dados.
Vamos utilizar o array de exemplo do professor para entendermos melhor:
info_carros
# Resultado:
[44410, 5712, 37123, 0, 25757, 2003, 1991, 1990, 2019, 2006]
Agora vamos utilizar o reshape.
# Código
np.array(info_carros).reshape((5, 2), order='F')
# Resultado
array([[44410, 2003],
[ 5712, 1991],
[37123, 1990],
[ 0, 2019],
[25757, 2006]])
# Código
np.array(info_carros).reshape((5, 2), order='C')
# Resultado
array([[44410, 5712],
[37123, 0],
[25757, 2003],
[ 1991, 1990],
[ 2019, 2006]])
Quando order='F' os dados vão sendo distribuídos seguindo a seguinte ordem:
Ou seja, os elementos do array serão distribuídos seguindo a ordem das colunas.
Agora, quando order='C' os dados serão organizados seguindo a seguinte ordem:
Ou seja, os elementos do array serão distribuídos seguindo a ordem das linhas.
Espero que isso te ajude! Qualquer dúvida me avisa que estarei por aqui ^^
Bons estudos!