Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khởi tạo ma trận (Matrix) trong Python


Ma trận 2D trong Python thường dùng list lồng nhau (list of lists).

Cách 1: List Comprehension (Pythonic, ngắn gọn)

N = 3  # rows
M = 3  # cols

# Ma trận i*j
matrix = [[i * j for i in range(N)] for j in range(M)]

print("Ma trận (inline):")
for row in matrix:
    print(' '.join(map(str, row)))

Kết quả

Ma trận (inline):
0 0 0
0 1 2
0 2 4

Cách 2: Vòng lặp truyền thống (Dễ hiểu cho beginner)

N, M = 3, 3
matrix = [[0]*M for _ in range(N)]  # Khởi tạo ma trận 0

for i in range(N):
    for j in range(M):
        matrix[i][j] = i * j  # Hoặc logic tùy ý

for row in matrix:
    print(row)

Cách 3: NumPy (Khuyên dùng cho tính toán khoa học)

import numpy as np

# Các cách khởi tạo phổ biến
zeros = np.zeros((3, 3), dtype=int)
ones = np.ones((3, 3), dtype=int)
identity = np.eye(3, dtype=int)
arange = np.arange(9).reshape(3, 3)
custom = np.fromfunction(lambda i, j: i*j, (3, 3), dtype=int)

print("zeros:\n", zeros)
print("custom i*j:\n", custom)

Lưu ý quan trọng

# SAI - Tạo tham chiếu cùng 1 list con
bad_matrix = [[0]*M] * N
bad_matrix[0][0] = 99
print(bad_matrix)  # [[99,0,0], [99,0,0], [99,0,0]] - TẤT CẢ HÀNG ĐỀU THAY ĐỔI!

# ĐÚNG - Mỗi hàng là list riêng biệt
good_matrix = [[0]*M for _ in range(N)]

Kết luận

Dùng list comprehension [[...] for _ in range(N)] cho Python thuần. Dùng NumPy cho ma trận lớn, tính toán số học, đại số tuyến tính.