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批量检查网站的可用性
Sep 09 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
python正则表达式re之compile函数解析
Oct 25 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
pandas对指定列进行填充的方法
Apr 11 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
python turtle绘图
May 04 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
Syphon 使用方法
2021/03/03 冲泡冲煮
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
旅游管理毕业生自荐书
2014/02/02 职场文书
一夜的工作教学反思
2014/02/08 职场文书
优秀员工获奖感言
2014/03/01 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
企业文化建设实施方案
2014/03/22 职场文书
开业庆典致辞
2015/08/01 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技