Arrays bidimensionais, ou matrizes, são estruturas de dados fundamentais na programação, especialmente cruciais para tarefas como processamento de imagens, álgebra linear e desenvolvimento de jogos. Embora Python não tenha um tipo de array 2D embutido como algumas linguagens (por exemplo, C++), ele oferece várias maneiras eficientes e elegantes de criá-los e manipulá-los. Este artigo explora três abordagens populares: list comprehension, loops aninhados e a poderosa biblioteca NumPy.
Sumário
Método List Comprehension
List comprehension oferece uma maneira concisa e Pythonica de criar arrays 2D, particularmente benéfica ao inicializar com valores gerados a partir de fórmulas ou padrões. Ele usa list comprehensions aninhadas, com o loop externo manipulando linhas e o loop interno manipulando colunas.
# Array 3x4 preenchido com zeros
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d) # Saída: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# Array 3x3 com valores baseados nos índices de linha e coluna
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d) # Saída: [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
# Array 2x2 com números aleatórios (requer importar random)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # Saída: (Exemplo) [[7, 2], [9, 5]]
Método de Loops Aninhados
Esta abordagem usa loops for
aninhados com range
, iterando pelas linhas e colunas para construir o array elemento por elemento. É mais verboso que list comprehension, mas pode ser mais fácil para iniciantes entenderem.
rows = 3
cols = 4
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0) # Ou qualquer outro valor de inicialização
array_2d.append(row)
print(array_2d) # Saída: [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
rows = 3
cols = 3
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(i*cols + j) #Exemplo preenchendo com números sequenciais
array_2d.append(row)
print(array_2d) # Saída: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
Arrays NumPy
NumPy é uma biblioteca poderosa para computação numérica em Python. Sua função numpy.array()
fornece criação e manipulação eficientes de arrays multidimensionais. Arrays NumPy oferecem desempenho significativamente mais rápido do que listas Python para operações numéricas.
import numpy as np
# Array 3x4 preenchido com zeros
array_2d = np.zeros((3, 4))
print(array_2d)
# Array 3x3 preenchido com uns
array_2d = np.ones((3, 3))
print(array_2d)
# Array 2x2 preenchido com um valor específico
array_2d = np.full((2, 2), 7)
print(array_2d)
# Matriz identidade 3x3
array_2d = np.eye(3)
print(array_2d)
# Array 2x3 com números aleatórios entre 0 e 1
array_2d = np.random.rand(2, 3)
print(array_2d)
# Array 2x2 com inteiros aleatórios entre 1 e 10
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)
NumPy oferece várias funções para inicializar arrays com diversos valores e padrões, tornando-o a escolha preferida para cálculos numéricos envolvendo arrays 2D. Lembre-se de import numpy as np
antes de usar essas funções.