Python实现矩阵加法和乘法的方法分析


Posted in Python onDecember 19, 2017

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

本来以为python的矩阵用list表示出来应该很简单可以搞。。其实发现有大学问。

这里贴出我写的特别不pythonic的矩阵加法,作为反例。

def add(a, b):
   rows = len(a[0])
   cols = len(a)
   c = []
   for i in range(rows):
     temp = []
     for j in range(cols):
       temp.append(a[i][j] + b[i][j])
     c.append(temp)
   return c

然后搜索了一下资料,果断有个很棒的,不过不知道有没有更棒的。

矩阵加法

def madd(M1, M2):
  if isinstance(M1, (tuple, list)) and isinstance(M2, (tuple, list)):
    return [[m+n for m,n in zip(i,j)] for i, j in zip(M1,M2)]

矩阵乘法

def multi(M1, M2):
  if isinstance(M1, (float, int)) and isinstance(M2, (tuple, list)):
    return [[M1*i for i in j] for j in M2]
  if isinstance(M1, (tuple, list)) and isinstance(M2, (tuple, list)):
    return [[sum(map(lambda x: x[0]*x[1], zip(i,j)))
         for j in zip(*M2)] for i in M1]

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

Python 相关文章推荐
Python标准库urllib2的一些使用细节总结
Mar 16 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
Python实现程序的单一实例用法分析
Jun 03 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
python getopt详解及简单实例
Dec 30 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
python实现对输入的密文加密
Mar 20 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
python RSA加密的示例
Dec 09 Python
分析python切片原理和方法
Dec 19 #Python
python实现redis三种cas事务操作
Dec 19 #Python
Python2/3中urllib库的一些常见用法
Dec 19 #Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 #Python
Python random模块用法解析及简单示例
Dec 18 #Python
Python方法的延迟加载的示例代码
Dec 18 #Python
Python字符串拼接六种方法介绍
Dec 18 #Python
You might like
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
jquery高级编程的最佳实践详解
2014/03/23 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
python如何更新包
2020/06/11 Python
keras 读取多标签图像数据方式
2020/06/12 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
HTML5应用之文件上传
2016/12/30 HTML / CSS
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
.net面试题
2016/09/17 面试题
年终考核实施方案
2014/05/26 职场文书
幸福家庭标语
2014/06/27 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
妈妈别哭观后感
2015/06/08 职场文书
小学见习报告
2015/06/23 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript