Questão FC331215
As operações em vetores e matrizes é uma importante tarefa no desenvolvimento de Sistemas de Informação, especialmente os que manipulam dados. Observe o seguinte código Python. imp
Linguagens de Programação
FGV · 2025
As operações em vetores e matrizes é uma importante tarefa no desenvolvimento de Sistemas de Informação, especialmente os que manipulam dados.
Observe o seguinte código Python.
import numpy as np
arr = np.array([1, 2, 3])
y = arr.copy()
arr[0] = 4
x = arr.view()
print(arr, x, y)
print(x.base, y.base, arr.shape)
O resultado da execução do código apresentado é:
- [4 2 3] [4 2 3] [1 2 3]
None None (3,1)
- [4 2 3] [1 2 3] [1 2 3]
[1 2 3] None (3,2)
- [1 2 3] [1 2 3] [4 2 3]
[4 2 3] [1 2 3] (3,0)
- [1 2 3] [4 2 3] [1 2 3]
[4 2 3] None (3,3)
- [4 2 3] [4 2 3] [1 2 3]
[4 2 3] None (3,)
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
A saída exibida corresponde à alternativa E porque o código cria um array NumPy arr com valores iniciais [1 2 3], depois gera y = arr.copy() e uma visão x = arr.view().
Ao executar arr[0] = 4, o conteúdo de arr passa a ser [4 2 3]. Como y é uma cópia independente, permanece [1 2 3]. Já x, sendo uma view, reflete a alteração e mostra [4 2 3].
No segundo print, x.base retorna o array original que fornece os dados da view (ou seja, arr, impresso como [4 2 3]). O atributo y.base é None porque y possui seus próprios dados. Finalmente, arr.shape é (3,), indicando 1 dimensão com 3 elementos.
Portanto, os prints resultam em:
[4 2 3] [4 2 3] [1 2 3]
[4 2 3] None (3,)
Conteúdo do catálogo FC Concursos · Atualizado em