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语言编写电脑时间自动同步小工具
Mar 08 Python
简单的Python抓taobao图片爬虫
Oct 26 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
pycharm激活码快速激活及使用步骤
Mar 12 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
python OpenCV学习笔记
Mar 31 Python
python开发的自动化运维工具ansible详解
Aug 07 Python
Python Pandas解析读写 CSV 文件
Apr 11 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字符串函数学习之strstr()
2015/03/27 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
JavaScript中Math对象使用说明
2008/01/16 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
python搜索算法原理及实例讲解
2020/11/18 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
商务英语专业毕业生自荐信
2013/11/05 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
交通事故检查书范文
2014/01/30 职场文书
面试后的英文感谢信
2014/02/01 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
夏洛特的网观后感
2015/06/15 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript