Fala, meus consagrados! Beleza?
A biblioteca NumPy é uma das principais ferramentas do ecossistema Python para
computação numérica, análise de dados, ciência de dados e aprendizado de máquina. Seu principal objeto é o ndarray, uma estrutura capaz de representar dados em diferentes dimensões: desde um único valor escalar até vetores, matrizes e estruturas tridimensionais.
Neste artigo, vamos estudar os arrays 0D, 1D, 2D e 3D em NumPy, analisando os principais atributos usados para compreender sua estrutura: dtype, size, ndim e shape.
Em NumPy, a dimensão de um array indica a forma como os dados estão organizados.
De forma simplificada:
| Tipo de array | Descrição |
| 0D | Escalar |
| 1D | Vetor |
| 2D | Matriz |
| 3D | Conjunto de matrizes, blocos ou tensor |
Ao criar um array NumPy, alguns atributos ajudam a compreender sua estrutura.
| Atributo | Significado |
| dtype | Tipo dos elementos armazenados |
| size | Quantidade total de elementos |
| ndim | Número de dimensões |
| shape | Formato do array em cada dimensão |
Esses atributos são muito importantes em questões de concursos, pois muitas perguntas
exigem a interpretação da saída de códigos NumPy.
Vamos começar por array 0D. Esse tipo de array é um array de dimensão zero. Ele representa um único valor escalar dentro da estrutura ndarray. O documento-base define o array 0D como um array de dimensão zero que representa um valor escalar dentro da estrutura ndarray
Exemplo:
import numpy as np
arrei = np.array(15)
print(arrei)
print(arrei.dtype)
print(arrei.size)
print(arrei.ndim)
print(arrei.shape)
Resultado da execução:
15
int64
1
0
()
Nesse exemplo, o valor 15 foi convertido em um array NumPy. Porém, como ele não está
dentro de uma lista ou tupla, é tratado como um escalar.
Analisando os atributos do array 0D:
| Atributo | Valor | Significado |
| dtype | int64 | O elemento é do tipo inteiro |
| size | 1 | O array possui 1 elemento |
| ndim | 0 | O array não possui eixo ou dimensão |
| shape | () | O array é escalar |
O atributo shape retorna uma tupla vazia (), indicando que não há dimensão estruturada como linha, coluna ou bloco. O próprio material explica que, nesse caso, o array é escalar e não possui eixo ou dimensão.
Esse tipo de array pode parecer estranho no início, mas é importante entender que nem todo ndarray precisa representar uma sequência. Ele também pode representar um único valor.
Um array 1D possui uma dimensão e normalmente é interpretado como um vetor. O
documento-base destaca que um array 1D é um array de uma dimensão, normalmente
interpretado como vetor.
Exemplo:
import numpy as np
arrei = np.array([1, 2, 3, 4, 5])
print(arrei)
print(arrei.dtype)
print(arrei.size)
print(arrei.ndim)
print(arrei.shape)
Resultado da execução:
[1 2 3 4 5]
int64
5
1
(5,)
Nesse caso, o array possui uma única dimensão com cinco elementos.
Analisando os atributos do array 1D:
| Atributo | Valor | Significado |
| dtype | int64 | Os elementos são do tipo inteiro |
| size | 5 | O array possui 5 elementos |
| ndim | 1 | O array possui 1 dimensão |
| shape | (5,) | O array tem uma única dimensão com tamanho 5 |
O shape igual a (5,) indica que o array possui uma única dimensão com cinco posições. A
vírgula aparece porque o resultado é uma tupla de apenas um elemento.
Um array 2D possui duas dimensões. Normalmente, é interpretado como uma matriz,
organizada em linhas e colunas. O material-base define o array 2D como uma estrutura com duas dimensões, geralmente interpretada como matriz.
Exemplo:
import numpy as np
arrei = np.array(
[[1, 2, 3, 4],
[15, 16, 17, 18]]
)
print(arrei)
print(type(arrei))
print(arrei.dtype)
print(arrei.size)
print(arrei.ndim)
print(arrei.shape)
Resultado da execução:
[[ 1 2 3 4]
[15 16 17 18]]
<class 'numpy.ndarray'>
int64
8
2
(2, 4)
O array possui duas listas internas:
- [1, 2, 3, 4]
- [15, 16, 17, 18]
Cada lista interna representa uma linha da matriz.
Assim, temos:
- 2 linhas;
- 4 colunas;
- 8 elementos no total.
Analisando os atributos do array 2D:
| Atributo | Valor | Significado |
| dtype | int64 | Os elementos são do tipo inteiro |
| size | 8 | O array possui 8 elementos no total |
| ndim | 2 | O array possui 2 dimensões |
| shape | (2, 4) | O array possui 2 linhas e 4 colunas |
O shape (2, 4) deve ser interpretado assim:
- 2: número de linhas;
- 4: número de colunas
Portanto, (2, 4) significa 2 linhas e 4 colunas.
Um array 3D possui três dimensões. Ele pode ser entendido como um conjunto de matrizes, camadas ou blocos. O documento-base explica que um array 3D possui três dimensões e pode ser interpretado como conjunto de matrizes, camadas ou blocos.
Exemplo:
import numpy as np
arrei = np.array(
[
[[1, 2, 3], [4, 5, 6]],
[[15, 17, 19], [21, 22, 23]]
]
)
print(arrei)
print(type(arrei))
print(arrei.dtype)
print(arrei.size)
print(arrei.ndim)
print(arrei.shape)
Resultado da execução:
[[[ 1 2 3]
[ 4 5 6]]
[[15 17 19]
[21 22 23]]]
<class 'numpy.ndarray'>
int64
12
3
(2, 2, 3)
O shape desse array é (2, 2, 3).
Isso significa:
- 2 blocos ou camadas;
- Cada bloco possui 2 linhas;
- Cada linha possui 3 colunas.
O próprio material explica que o array com shape (2, 2, 3) pode ser interpretado como duas matrizes de tamanho 2 x 3.
Visualmente, temos:
Primeira matriz:
[[1 2 3]
[4 5 6]]
Segunda matriz:
[[15 17 19]
[21 22 23]]
Analisando os atributos do array 3D:
| Atributo | Valor | Significado |
| dtype | int64 | Os elementos são do tipo inteiro |
| size | 12 | O array possui 12 elementos no total |
| ndim | 3 | O array possui 3 dimensões |
| shape | (2, 2, 3) | O array possui 2 blocos, 2 linhas e 3 colunas |
Em outras palavras:
- shape = (blocos, linhas, colunas);
- shape = (2, 2, 3).
Arrays NumPy podem representar dados em diversas dimensões. Um array 0D representa um valor escalar; um array 1D representa um vetor; um array 2D representa uma matriz; e um array 3D pode representar blocos, camadas ou um conjunto de matrizes.
A correta interpretação dos atributos dtype, size, ndim e shape é essencial para compreender o comportamento dos arrays e resolver questões de programação, ciência de dados, aprendizado de máquina e concursos de TI.
Dominar esses conceitos é um passo importante para avançar em temas como indexação, fatiamento, filtragem, operações aritméticas, broadcasting, manipulação de matrizes e processamento de dados com Python.
Espero que tenham gostado!
Forte abraço e até a próxima jornada!

![[APROVAÇÃO NÃO ESPERA EDITAL] Promo maio/junho e pós-copa – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/07/27090851/sua-aprovacao-nao-espera-edital-cabecalho-3lote.webp)
![[APROVAÇÃO NÃO ESPERA EDITAL] Promo maio/junho e pós-copa – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2026/07/27091228/sua-aprovacao-nao-espera-edital-post-3lote.webp)


