zoukankan      html  css  js  c++  java
  • 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]]))
    
  • 相关阅读:
    time模块
    Python进程模块
    Django面试题
    基本命令行语句
    scrapy中的配置与中间件
    JSON编码于解码对应dump于load
    python操作数据库
    Python里的方法
    正则表达式
    Python常用模块
  • 原文地址:https://www.cnblogs.com/yongestcat/p/13156077.html
Copyright © 2011-2022 走看看