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 strip()函数 介绍
May 24 Python
Python sys.argv用法实例
May 28 Python
python开发之str.format()用法实例分析
Feb 22 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
解决Python安装后pip不能用的问题
Jun 12 Python
python requests 测试代理ip是否生效
Jul 25 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
Python高级特性 切片 迭代解析
Aug 23 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python中断多重循环的几种方式详解
Feb 10 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 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程序中的常见漏洞进行攻击
2006/10/09 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
JQuery球队选择实例
2015/05/18 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
python操作日期和时间的方法
2014/03/11 Python
python多线程编程中的join函数使用心得
2014/09/02 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
班主任寄语大全
2014/04/04 职场文书
银行委托书范本
2014/04/04 职场文书
调解协议书
2014/04/16 职场文书
科技之星事迹材料
2014/06/02 职场文书
文员岗位职责
2015/02/04 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
js Proxy的原理详解
2021/05/25 Javascript
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python