纯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基础教程之Hello World!
Aug 29 Python
详解Python中的循环语句的用法
Apr 09 Python
python脚本内运行linux命令的方法
Jul 02 Python
Python环境变量设置方法
Aug 28 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python爬虫超时的处理的实例
Dec 19 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
python Pillow图像处理方法汇总
Oct 16 Python
Python中包的用法及安装
Feb 11 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
python集合能干吗
Jul 19 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实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
Python入门篇之字符串
2014/10/17 Python
Python实现字典依据value排序
2016/02/24 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python实现购物车程序
2018/04/16 Python
Python imread、newaxis用法详解
2019/11/04 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
上课迟到检讨书
2014/01/19 职场文书
农行心得体会
2014/09/02 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
护士岗位竞聘书
2015/09/15 职场文书
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python