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数组条件过滤filter函数使用示例
Jul 22 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python编程实现正则删除命令功能
Aug 30 Python
python中requests库session对象的妙用详解
Oct 30 Python
Python for循环生成列表的实例
Jun 15 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
实例详解Python装饰器与闭包
Jul 29 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
python实现126邮箱发送邮件
May 20 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
PHP 无限级分类
2017/05/04 PHP
js资料prototype 属性
2007/03/13 Javascript
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
EM算法的python实现的方法步骤
2018/01/02 Python
python实现整数的二进制循环移位
2019/03/08 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
DOM和JQuery对象有什么区别
2016/11/11 面试题
老师推荐信
2013/10/28 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
大学感恩节活动总结
2015/05/05 职场文书
团干部培训班心得体会
2016/01/06 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸