📊 矩阵基础
import numpy as np
# 创建矩阵
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 矩阵形状
print(A.shape) # (3, 3)
# 矩阵转置
print(A.T)
# 矩阵加法
B = np.ones((3, 3))
print(A + B)
# 矩阵乘法(点积)
print(np.dot(A, B))
# 或
print(A @ B) # Python 3.5+
# 矩阵的逆
A_inv = np.linalg.inv(A)
# 行列式
det = np.linalg.det(A)
🔄 矩阵乘法图解
矩阵乘法是深度学习的核心运算。(m×n) × (n×p) = (m×p)
# 矩阵乘法规则
# A (m×n) * B (n×p) = C (m×p)
A = np.array([[1, 2], # 2×2
[3, 4]])
B = np.array([[5, 6], # 2×2
[7, 8]])
C = A @ B
# C = [[1*5+2*7, 1*6+2*8],
# [3*5+4*7, 3*6+4*8]]
# C = [[19, 22],
# [43, 50]]
🔑 特征值与特征向量
📌
核心概念
对于方阵A,如果存在非零向量v和标量λ,使得 Av = λv,则λ是特征值,v是对应的特征向量。
import numpy as np
A = np.array([[4, 2],
[1, 3]])
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
print("特征值:", eigenvalues)
print("特征向量:\n", eigenvectors)
# 验证: A @ v = λ * v
for i in range(len(eigenvalues)):
v = eigenvectors[:, i]
print(f"验证: A @ v{i} ≈ λ{i} * v{i}")
print(np.allclose(A @ v, eigenvalues[i] * v))