Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg077331
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 7 - Ciência de Dados - Tarde
Durante a preparação de dados para análise, alterar a quantidade de dimensões e/ou elementos de cada dimensão de um dado do tipo Array é uma operação importante na manipulação de dados. Observe o seguinte trecho de código escrito na linguagem de programação Python:import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])newarr = arr.reshape(2, 3, 2)print(newarr)O resultado da execução do código apresentado é:
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoC — [imagem]

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Manipulação de Arrays com NumPy

Gabarito: letra C. O método reshape do NumPy altera a forma de um array sem modificar seus dados, desde que o número total de elementos seja mantido. No caso, o array original possui 12 elementos (12=2×3×212 = 2 \times 3 \times 2), e a operação arr.reshape(2, 3, 2) organiza esses elementos em uma estrutura tridimensional com 2 blocos, cada um contendo 3 linhas e 2 colunas.

O NumPy é uma biblioteca fundamental para computação científica em Python, sendo amplamente utilizada para manipular estruturas de dados multidimensionais, conhecidas como arrays (ou ndarrays). O método reshape é uma ferramenta poderosa para reorganizar a disposição dos dados em memória, permitindo que um mesmo conjunto de valores seja interpretado com diferentes dimensões, desde que o produto das novas dimensões seja igual ao número total de elementos originais.

  1. 1Array 1D (12 elementos)
  2. 22 blocos (dimensão 2)
  3. 33 linhas por bloco
  4. 42 colunas por linha
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Representa uma matriz bidimensional de 4 linhas e 3 colunas (4×3=124 \times 3 = 12). Embora mantenha o número total de elementos, não corresponde à forma tridimensional (2,3,2)(2, 3, 2) especificada no código.

Alternativa B — ❌ Incorreta

Representa uma matriz bidimensional de 3 linhas e 4 colunas (3×4=123 \times 4 = 12). Novamente, a estrutura de dimensões está incorreta em relação ao comando reshape(2, 3, 2).

Alternativa C — ✅ Correta ⟵ GABARITO

Esta alternativa exibe corretamente a estrutura tridimensional resultante: dois blocos principais (dimensão 2), cada um contendo três sub-listas (dimensão 3), e cada sub-lista contendo dois elementos (dimensão 2). A disposição dos números de 1 a 12 segue a ordem sequencial do array original preenchendo as dimensões conforme a hierarquia definida.

Alternativa D — ❌ Incorreta

Representa uma matriz bidimensional de 2 linhas e 6 colunas (2×6=122 \times 6 = 12). Não reflete a estrutura tridimensional solicitada.

Alternativa E — ❌ Incorreta

Embora apresente uma estrutura que parece tridimensional, a organização dos elementos não condiz com a lógica de preenchimento do reshape(2, 3, 2). Ela sugere uma estrutura de 2 blocos, cada um com 2 linhas e 3 colunas, o que seria reshape(2, 2, 3).

PEGA ESSA DICA!

Ao usar reshape, lembre-se sempre da regra de ouro: o produto das novas dimensões deve ser exatamente igual ao número total de elementos do array original. Se você tentar um reshape com dimensões cujo produto não resulte no total de elementos, o Python retornará um erro de valor (ValueError).

Link permanente: /questoes/fg077331