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清除字符串里非数字字符的方法
Jul 02 Python
python设计模式大全
Jun 27 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
python实现机器人行走效果
Jan 29 Python
在python中使用with打开多个文件的方法
Jan 07 Python
Django框架模型简单介绍与使用分析
Jul 18 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
Python paramiko模块使用解析(实现ssh)
Aug 30 Python
Django框架反向解析操作详解
Nov 28 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 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编实现程动态图像的创建代码
2008/09/28 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
js实现通过开始结束控制的计时器
2019/02/25 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
JS实现吸顶特效
2020/01/08 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python3读取文件常用方法实例分析
2015/05/22 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
Python实现学校管理系统
2018/01/11 Python
python+opencv实现阈值分割
2018/12/26 Python
flask 实现token机制的示例代码
2019/11/07 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
浅析Python 条件控制语句
2020/07/15 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
香港礼品网站:GiftU eshop
2017/09/01 全球购物
优秀团队获奖感言
2014/02/19 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python