Arrays de diversas dimensões em NumPy

Por
Publicado em
3 min. de leitura

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 arrayDescrição
0DEscalar
1DVetor
2DMatriz
3DConjunto de matrizes, blocos ou tensor

Ao criar um array NumPy, alguns atributos ajudam a compreender sua estrutura.

AtributoSignificado
dtypeTipo dos elementos armazenados
sizeQuantidade total de elementos
ndimNúmero de dimensões
shapeFormato 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:

AtributoValorSignificado
dtypeint64O elemento é do tipo inteiro
size1O array possui 1 elemento
ndim0O 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:

AtributoValorSignificado
dtypeint64Os elementos são do tipo inteiro
size5O array possui 5 elementos
ndim1O 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:

AtributoValorSignificado
dtypeint64Os elementos são do tipo inteiro
size8O array possui 8 elementos no total
ndim2O 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:

AtributoValorSignificado
dtypeint64Os elementos são do tipo inteiro
size12O array possui 12 elementos no total
ndim3O 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!

Terças e quintas de TI. Conteúdo prático e artigos especializados para acelerar seu conhecimento. Acesse agora!

Por
Publicado em
3 min. de leitura