python 矩阵乘法
Posted 九命猫幺的笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 矩阵乘法相关的知识,希望对你有一定的参考价值。
1.列表作为数据结构
def MatrixProduct(a, b): temp2 = [] for i in range(len(a)): temp1 = [] for j in range(len(b[0])): total = 0 for k in range(len(a[0])): total += a[i][k] * b[k][j] temp1.append(total) temp2.append(temp1) return temp2 print(MatrixProduct([[1,0],[0,0]], [[0,1],[1,0]]))
时间复杂度太高O(n^3)
以后再想办法用矩阵快速幂来优化,降低时间复杂度
2.numpy中ndarray作为数据结构
(注意numpy数组的a*b指的并不是矩阵乘法,a.dot(b)或者numpy.dot(a,b))
import numpy as np def MatrixProduct(a, b): a=np.array(a) b=np.array(b) c=np.dot(a,b) return c.tolist() print(MatrixProduct([[1,0],[0,0]], [[0,1],[1,0]]))
3.numpy中mat作为数据结构
这种矩阵格式就可以a*b了
import numpy as np def MatrixProduct(a, b): a=np.mat(a) b=np.mat(b) c=a*b return c.tolist() print(MatrixProduct([[1,0],[0,0]], [[0,1],[1,0]]))
以上是关于python 矩阵乘法的主要内容,如果未能解决你的问题,请参考以下文章
矩阵乘法运行时间 Python < C++ < Matlab - 解释