纯python进行矩阵的相乘运算的方法示例


Posted in Python onJuly 17, 2019

本文介绍了纯python进行矩阵的相乘运算的方法示例,分享给大家,具体如下:

def matrixMultiply(A, B):
  # 获取A的行数和列数
  A_row, A_col = shape(A)
  # 获取B的行数和列数
  B_row, B_col = shape(B)

  # 不能运算情况的判断
  if(A_col != B_row):
    raise ValueError

  # 最终的矩阵
  result = []

  # zip 解包后是转置后的元组,强转成list, 存入result中
  BT = [list(row) for row in zip(*B)] 

  # 开始做乘积运算 
  for A_index in range(A_row):
    # 用于记录新矩阵的每行元素
    rowItem = []
    for B_index in range(len(BT)): 
      # num 用于累加
      num = 0   
      for Br in range(len(BT[B_index])): 
        num += A[A_index][Br] * BT[B_index][Br]
      # 累加完成后,将数据存入新矩阵的行中
      rowItem.append(num) 
    result.append(rowItem) 
  return result

说明: A矩阵与B矩阵的乘法运算,最终得到新的矩阵X , 思路

  • 首先判断是否可以相乘:前提条件是A的列与B的行要相同
  • 我们可以画图理解:假如A是3行5列,B是5行2列,相乘结果是3行2列
  • 将B转置后是2行5列,我们称之为BT, 这样 A 和 BT 都是5列了
  • 则A的每行中的第 i 个元素 * BT每行中的第 i 个元素,相加构成新矩阵X的新行,循环A行,共3行,则新矩阵X就会逐步添加新行,待循环完毕,得到新矩阵X

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python 备份程序代码实现
Mar 06 Python
python计算auc指标实例
Jul 13 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
详解Django CAS 解决方案
Oct 30 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
利用PyTorch实现VGG16教程
Jun 24 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
python中update的基本使用方法详解
Jul 17 #Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 #Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 #Python
python实现点击按钮修改数据的方法
Jul 17 #Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 #Python
python实时检测键盘输入函数的示例
Jul 17 #Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 #Python
You might like
十天学会php之第四天
2006/10/09 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
深入浅析python定时杀进程
2016/06/06 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
用python实现学生管理系统
2020/07/24 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
Ruby如何进行文件操作
2014/07/17 面试题
战略合作协议书范本
2014/04/18 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
创先争优承诺书
2015/01/20 职场文书
班主任高考寄语
2015/02/26 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
Python实现天气查询软件
2021/06/07 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL