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中的迭代器漫谈
Feb 03 Python
Sanic框架流式传输操作示例
Jul 18 Python
详解python分布式进程
Oct 08 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
python with语句的原理与用法详解
Mar 30 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
python中数组和列表的简单实例
Mar 25 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
php中动态调用函数的方法
2015/03/16 PHP
PHP的全局错误处理详解
2016/04/25 PHP
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
python多进程读图提取特征存npy
2019/05/21 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
python新手学习使用库
2020/06/11 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
出纳员的岗位职责
2014/02/22 职场文书
公休请假条
2014/04/11 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
实习介绍信模板
2015/01/30 职场文书
创业计划书之美容店
2019/09/16 职场文书
golang中的空接口使用详解
2021/03/30 Python
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL