1、导入numpy库备用
import numpy as np
2、生成两个随机矩阵
a = np.random.rand(1000,1000)
b = np.random.rand(1000,1000)
3、用list
实现矩阵相乘
%%time
c = [[sum(i*j) for j in b.T] for i in a]
Wall time: 4min 52s
4、直接采用numpy
矩阵乘法
%%time
d = a @ b
Wall time: 98.9 ms
5、算法结果比较
print(((c-d)**2).sum())
4.162550960848347e-20
6、结论
- 由结果可见基于
list
的实现是正确的。 - 但效率相比
numpy
而言相差太远