FC ConcursosFC Concursos

Questão FC331230

Durante a preparação de dados para análise, alterar a quantidade de dimensões e/ou elementos de cada dimensão de um dado do tipo Array é uma operação importante na manipulação de d

Linguagens de Programação

FGV · 2024

Durante a preparação de dados para análise, alterar a quantidade de dimensões e/ou elementos de cada dimensão de um dado do tipo Array é uma operação importante na manipulação de dados. Observe o seguinte trecho de código escrito na linguagem de programação Python:


import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(2, 3, 2)
print(newarr)


O resultado da execução do código apresentado é:

  1. [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
  2. [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]
  3. [[[ 1 2] [ 3 4] [ 5 6]] [[ 7 8] [ 9 10] [11 12]]]
  4. [[ 1 2 3 4 5 6] [ 7 8 9 10 11 12]]
  5. [[[ 1 2 3] [ 4 5 6]] [[ 7 8 9] [10 11 12]]]
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A chamada reshape aplicada em arr.reshape(2, 3, 2) converte um vetor 1‑D de 12 elementos em um array 3‑D com forma \(2 \times 3 \times 2 = 12\).

Isso significa que a dimensão mais externa terá 2 blocos; cada bloco contém 3 "linhas" e cada linha tem 2 elementos (colunas). Assim, a estrutura lógica é: 2 blocos → 3 linhas por bloco → 2 elementos por linha.

O NumPy preenche o novo array em ordem sequencial (ordem C, linha‑maior): os primeiros 6 elementos formam o primeiro bloco e os últimos 6 formam o segundo. Fica, portanto, assim:
[[[ 1 2] [ 3 4] [ 5 6]] [[ 7 8] [ 9 10] [11 12]]]

Ao executar print(newarr), é esse o arranjo exibido, refletindo a redistribuição sequencial dos 12 valores nas dimensões especificadas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo