Python Programming

Criando Matrizes 2D em Python

Spread the love

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *