python实现矩阵乘法的方法

yipeiwu_com5年前Python基础

本文实例讲述了python实现矩阵乘法的方法。分享给大家供大家参考。具体实现方法如下:

def matrixMul(A, B):
  res = [[0] * len(B[0]) for i in range(len(A))]
  for i in range(len(A)):
    for j in range(len(B[0])):
      for k in range(len(B)):
        res[i][j] += A[i][k] * B[k][j]
  return res
def matrixMul2(A, B):
  return [[sum(a * b for a, b in zip(a, b)) for b in zip(*B)] for a in A]
a = [[1,2], [3,4], [5,6], [7,8]]
b = [[1,2,3,4], [5,6,7,8]]
print matrixMul(a,b)
print matrixMul(b,a)
print "-"*90
print matrixMul2(a,b)
print matrixMul2(b,a)
print "-"*90
from numpy import dot
print map(list,dot(a,b))
print map(list,dot(b,a))

#Out:
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]
#------------------------------------------------------------------------
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]
#------------------------------------------------------------------------
#[[11, 14, 17, 20], [23, 30, 37, 44], [35, 46, 57, 68], [47, 62, 77, 92]]
#[[50, 60], [114, 140]]

希望本文所述对大家的Python程序设计有所帮助。

相关文章

利用Python的Twisted框架实现webshell密码扫描器的教程

好久以来都一直想学习windows中得iocp技术,即异步通信,但是经过长时间研究别人的c++版本,发现过于深奥了,有点吃力,不过幸好python中的twisted技术的存在方便了我。...

Python格式化字符串f-string概览(小结)

简介 f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Li...

python的scipy实现插值的示例代码

python的scipy实现插值的示例代码

插值对于一些时间序列的问题可能比较有用。 Show the code directly: import numpy as np from matplotlib import pypl...

浅谈pyqt5中信号与槽的认识

一、介绍 信号(Signal)和槽(Slot)是Qt中的核心机制,也是PyQt变成中对象之间进行通信的机制 在pyqt5中,每一个QObject对象和pyqt中所有继承自QWidge...

python中update的基本使用方法详解

前言 Python 字典 update()方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中。 语法格式 d.update(e) 参数说明 将...