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 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
- [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]
- [[[ 1 2] [ 3 4] [ 5 6]] [[ 7 8] [ 9 10] [11 12]]]
- [[ 1 2 3 4 5 6] [ 7 8 9 10 11 12]]
- [[[ 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