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连接mysql并提交mysql事务示例
Mar 05 Python
python中map、any、all函数用法分析
Apr 21 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
python多线程与多进程及其区别详解
Aug 08 Python
Python无头爬虫下载文件的实现
Apr 02 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python 录制系统声音的示例
Dec 21 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
Python+Appium自动化测试的实战
Jun 30 Python
Python进程池与进程锁之语法学习
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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP If Else(elsefi) 语句
2013/04/07 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
javascript实现抢购倒计时程序
2019/08/26 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
详解Python中的join()函数的用法
2015/04/07 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python利用tkinter实现屏保
2019/07/30 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
如何基于Python按行合并两个txt
2020/11/03 Python
python实现简单文件读写函数
2021/02/25 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
单位在职证明书
2014/09/11 职场文书
个性与发展自我评价
2015/03/06 职场文书
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis