Questão nº 27
Questão de Economia de Energia · FGV EPE 2024 (nº 27)
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 (alternativa correta)
- Carray([[ 0, 0, 0, 0, 0]])
- Darray([[11, 13, 15], [21, 23, 25]])
- Earray([[ 1, 3, 5 ], [11, 13, 15]])
Resposta comentada
Gabarito Alternativa B
NumPy é uma biblioteca para trabalhar com arrays (matrizes) e, ao fatiar (selecionar partes) um array, é crucial saber se você está criando uma cópia (independente) ou uma view (referência à memória original).
Contexto do código:
x = np.arange(1,30,2).reshape(3,5)cria o arrayx:[[ 1, 3, 5, 7, 9], [11, 13, 15, 17, 19], [21, 23, 25, 27, 29]]y = x[[1,2]]usa indexação avançada (com uma lista de índices[1,2]). Isso cria uma cópia das linhas 1 e 2 dex.y = [[11, 13, 15, 17, 19], [21, 23, 25, 27, 29]]y[0,:]=0modifica a primeira linha deypara zeros. Comoyé uma cópia,xnão é alterado.y = [[ 0, 0, 0, 0, 0], [21, 23, 25, 27, 29]]xcontinua sendo:[[ 1, 3, 5, 7, 9], [11, 13, 15, 17, 19], [21, 23, 25, 27, 29]]z = x[0,2]acessa o elemento na linha 0, coluna 2 do arrayx(que não foi modificado).
(A) Incorreta: Esta seria a resposta se y = x[[1,2]] criasse uma view e a modificação em y afetasse x. No entanto, a indexação avançada em NumPy cria uma cópia, não uma view.
(B) Correta: O valor de z é 5 porque x[0,2] se refere ao elemento na primeira linha (índice 0) e terceira coluna (índice 2) do array x original, que é 5. As operações em y não alteraram x porque y era uma cópia.
(C) Incorreta: Este é o valor da primeira linha de y após a modificação, mas z recebe um único valor escalar de x, não um array.
(D) Incorreta: Este é um subconjunto de x, mas não é o valor de z, que é um único elemento escalar.
(E) Incorreta: Este é um subconjunto de x, mas não é o valor de z, que é um único elemento escalar.
Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Economia de Energia (Caderno Tipo 1). Reproduzida para fins de estudo.