FC ConcursosFC Concursos

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 é:

  1. [4 2 3] [4 2 3] [1 2 3]

    None None (3,1)

  2. [4 2 3] [1 2 3] [1 2 3]

    [1 2 3] None (3,2)

  3. [1 2 3] [1 2 3] [4 2 3]

    [4 2 3] [1 2 3] (3,0)

  4. [1 2 3] [4 2 3] [1 2 3]

    [4 2 3] None (3,3)

  5. [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

Continue aprendendo