1、使用 NumPy 库
NumPy 是 Python 中用于科学计算的常用库,它提供了 array_equal
和 allclose
函数来判断矩阵是否相等。array_equal
用于精确比较,allclose
用于考虑一定误差范围的近似比较,适合浮点数矩阵。
import numpy as np
# 创建示例矩阵
matrix_a = np.array([[1, 2, 3], [4, 5, 6]])
matrix_b = np.array([[1, 2, 3], [4, 5, 6]])
matrix_c = np.array([[1, 2, 3], [4, 5, 7]])
# 精确比较
print(np.array_equal(matrix_a, matrix_b)) # 输出: True
print(np.array_equal(matrix_a, matrix_c)) # 输出: False
# 近似比较(适用于浮点数矩阵)
matrix_d = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
matrix_e = np.array([[1.000001, 2.0, 3.0], [4.0, 5.0, 6.0]])
print(np.allclose(matrix_d, matrix_e, atol=1e-5)) # 输出: True
2、使用 PyTorch 库
在深度学习中,PyTorch 是常用的框架,可使用 torch.equal
函数进行精确比较,torch.allclose
进行近似比较。
import torch
# 创建示例矩阵
matrix_a = torch.tensor([[1, 2, 3], [4, 5, 6]])
matrix_b = torch.tensor([[1, 2, 3], [4, 5, 6]])
matrix_c = torch.tensor([[1, 2, 3], [4, 5, 7]])
# 精确比较
print(torch.equal(matrix_a, matrix_b)) # 输出: True
print(torch.equal(matrix_a, matrix_c)) # 输出: False
# 近似比较(适用于浮点数矩阵)
matrix_d = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
matrix_e = torch.tensor([[1.000001, 2.0, 3.0], [4.0, 5.0, 6.0]])
print(torch.allclose(matrix_d, matrix_e, atol=1e-5)) # 输出: True