Questão nº 27
Questão de Recursos Energéticos · 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
Em NumPy, a indexação avançada (usando uma lista ou array de índices) geralmente cria uma cópia dos dados, enquanto a indexação básica (fatiamento) cria uma view. Modificações em uma cópia não afetam o array original, mas modificações em uma view afetam.
- (A) Incorreta: Esta seria a resposta se
yfosse uma view dexe a modificação emyafetassex. No entanto,yé uma cópia, exnão é alterado. - (B) Correta: A linha
x = np.arange(1,30,2).reshape(3,5)cria o arrayxcomo[[ 1, 3, 5, 7, 9], [11, 13, 15, 17, 19], [21, 23, 25, 27, 29]]. A linhay = x[[1,2]]usa indexação avançada para selecionar as linhas de índice 1 e 2 dex, criando uma cópia dessas linhas paray. A linhay[0,:]=0modifica a primeira linha deypara zeros, mas comoyé uma cópia, o arrayxoriginal permanece inalterado. Finalmente,z = x[0,2]acessa o elemento na linha 0, coluna 2 do arrayxoriginal, que é5. - (C) Incorreta: Esta é a primeira linha de
yapós a modificação, maszé um único valor (escalar), não um array. - (D) Incorreta: Esta é uma fatia de
x(linhas 1 e 2, colunas 0 a 2), maszé um único valor. - (E) Incorreta: Esta é uma fatia de
x(linhas 0 e 1, colunas 0 a 2), maszé um único valor.
Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Recursos Energéticos (Caderno Tipo 1). Reproduzida para fins de estudo.