Um programa em Python contém um vetor unidimensional, de tam...
Para tal fim, a expressão a ser utilizada é
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a C - np.reshape(vetor, (4, 5)).
Essa questão aborda o uso da biblioteca Numpy, que é uma biblioteca muito utilizada em Python para computação científica e manipulação de arrays multidimensionais. Ter familiaridade com o Numpy é fundamental para resolver essa questão, pois ela testa o conhecimento sobre como transformar um vetor unidimensional em uma matriz bidimensional.
Para entender a resposta correta, é importante saber que a função reshape do Numpy é utilizada para alterar a forma de um array sem alterar seus dados. Portanto, ao usar np.reshape(vetor, (4, 5)), estamos instruindo o Numpy a tomar o array unidimensional vetor e reorganizá-lo em uma nova forma de matriz com 4 linhas e 5 colunas. Isso é feito 'linha a linha', preenchendo a matriz com os elementos do vetor conforme eles aparecem na sequência original.
A resposta está correta porque:
- O método
reshapeé chamado corretamente como uma função do Numpy, passando o array original como primeiro argumento. - O segundo argumento da função
reshapeé uma tupla que define a nova forma do array. Neste caso,(4, 5)significa 4 linhas e 5 colunas.
Com isso, a expressão np.reshape(vetor, (4, 5)) resulta exatamente na transformação desejada, de um vetor unidimensional de tamanho 20 em uma matriz de 4 linhas e 5 colunas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A resposta correta é a opção C: .
A função fazer o Numpy é usada para reorganizar os elementos de um array em uma nova forma, e ela é apropriada para criar uma matriz de 4 linhas e 5 colunas a partir de um vetor unidimensional.
Portanto, a resposta correta é:
C -
A np.split(vetor, 4)
split cria sub vetores. Nesse caso estariamos criando 5 vetores de tamanho igual. Pois 20/4 = 5.
B vetor.reshape(5, 4)
Se fosse vetor.reshape(4,5) estaria correta
C np.reshape(vetor, (4, 5))
Essa é a alternativa! esse reshape está diferente porque é uma função, diferente da de cima que é um método. Fazem a exata mesma coisa, mas diferem nos argumentos.
D vetor.transpose(4, 5)
Matriz transposta inverte a linha para coluna e a coluna para linha. Nesse caso temos uma vetor de tamanho 20 unidimensional, então a chamado do método com esses argumentos 4,5 dará um erro
E np.array(vetor, shape=(4, 5))
Sintaxe errada. E shape só retorna o formato não altera nada.
Na verdade, o termo "np" normalmente é como de forma carinhosa é renomeada a biblioteca Numpy na hora de importar.
O programador não necessariamente precisa chamar de "np", pode renomear como bem entender. A questão em nenhum momento afirma que foi importada dessa forma.
Pra quem já tem experiência, conseguiria acertar tranquilamente, mas acredito que caberia recurso por esse motivo.
Gabarito: C.
Resumo do Resumo:
A função np.reshape(vetor, (4, 5)) (ou vetor.reshape(4, 5)) reorganiza os 20 elementos do vetor unidimensional em uma matriz com 4 linhas e 5 colunas, preenchendo linha a linha (ordem padrão "C" do NumPy).
As demais alternativas:
- A) np.split(vetor, 4) → divide o vetor em 4 sub-vetores, mas não cria uma matriz 4x5.
- B) vetor.reshape(5, 4) → cria uma matriz com 5 linhas e 4 colunas (ordem invertida).
- D) vetor.transpose(4, 5) → transpose() não aceita dois argumentos inteiros para definir forma; além disso, o vetor unidimensional não tem dimensões para transpor.
- E) np.array(vetor, shape=(4, 5)) → não existe o parâmetro shape em np.array(); a forma é definida após a criação.
By Futuro Dev Estável
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo