1
resposta

Dúvidas - Curso Python para Data Science: Introdução à linguagem e Numpy

Olá, tudo certo? Fiz algumas anotações no curso, já no final. Dúvidas pequenas..porém necessárias. Valeu!

se eu trocar a array no Numpy uando o ''ndarray.T', o resultado muda a configuração? Exemplo: antes eu estava usando em formato de linhas, com uma numeração X. Mudando para colunas, uso as novas localizações ou as antigas (que estavam nas linhas)?

Quando eu tiver novos dados (que peguei na internet, por exemplo) que não sei a dimensão, como posso criar uma array e fazer o reshape (sugerindo linhas e colunas), se não sei o tamanho deles? Neste caso eu transformaria para uma array comum, consultaria o tamanho usando o recurso ''size''? Como seria o passo a passo?

No exercício prático, após o professor usar o ''reshape'', por que escolheu o ''order = F'? É a linguagem mais utilizada para isso?

1 resposta

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:

Imagem demonstrando o mecanismo de transposição de uma matriz

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:

Imagem com uma seta azul mostrando a ordem de distribuição dos elementos de um array

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:

Imagem com uma seta rosa mostrando a ordem de distribuição dos elementos de um array

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!