Questão de Programação — Linguagens de programação — FGV 2024
Programação›Linguagens de programação
Código
fg084793
Banca
FGV
Órgão
EPE
Ano
2024
Nível
Superior
Cargo
Analista de Pesquisa Energética (Economia de Energia)
Considere o código a seguir, escrito na linguagem de programação Python (versão 3.11.3).<1> import numpy as np<2> x = np.arange(1,30,2).reshape(3,5)<3> y = x[[1,2]]<4> y[0,:]=0<5> z = x[0,2]Assinale a opção que indica o valor que z recebe na linha <5>.
A0
B5
Carray([[ 0, 0, 0, 0, 0]])
Darray([[11, 13, 15], [21, 23, 25]])
Earray([[ 1, 3, 5 ], [11, 13, 15]])
Revelar gabarito e comentário▾
GabaritoB — 5
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”.
NumPy: indexação fancy e views
Gabarito: letra B. O código cria um array de 1 a 29 com passo 2 e o remodela para 3x5. A linha y = x[[1,2]] cria uma visão das linhas 1 e 2. Ao zerar a primeira linha de y, a linha correspondente em x (linha 1) é zerada. O acesso x[0,2] retorna o valor original da linha 0, coluna 2, que é 5.
y[0,:]=0 → modifica a primeira linha de y (linha 1 de x). Agora x fica:
```
[[ 1, 3, 5, 7, 9],
[ 0, 0, 0, 0, 0],
[21, 23, 25, 27, 29]]
```
z = x[0,2] → elemento da linha 0, coluna 2: 5.
1arange(1,30,2)
2reshape(3,5)
3y = x[[1,2]] (visão)
4y[0,:]=0 (altera x)
5z = x[0,2] → 5
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O valor 0 seria obtido se acessasse x[1,2] ou x[0,0], mas x[0,2] é 5.
Alternativa B — ✅ Correta ⟵ GABARITO
Conforme demonstrado, x[0,2] é 5.
Alternativa C — ❌ Incorreta
y[0,:] após modificação é [0,0,0,0,0], mas z é um escalar, não um array.
Alternativa D — ❌ Incorreta
Corresponde a uma fatia de x (linhas 0 e 1, colunas 2 a 4), não ao elemento x[0,2].
Alternativa E — ❌ Incorreta
Corresponde à submatriz x[:2, :3] do array original, mas z é um único valor.
PEGA ESSA DICA!
Lembre-se de que indexação fancy (usando uma lista de índices) no NumPy retorna uma visão do array original. Qualquer alteração na visão afeta o array original. Para evitar efeitos colaterais, use .copy() se necessário.