纯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学习数据结构实例代码
May 11 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
PyQt5组件读取参数的实例
Jun 25 Python
python 动态调用函数实例解析
Oct 21 Python
Python坐标线性插值应用实现
Nov 13 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
PyCharm中关于安装第三方包的三个建议
Sep 17 Python
python实现二分查找算法
Sep 18 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
python实现腾讯滑块验证码识别
Apr 27 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实现的MySQL数据浏览器
2007/03/11 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
使用Python写一个小游戏
2018/04/02 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
护士个人简历自荐信
2013/10/18 职场文书
物流专业大学生的自我鉴定
2013/11/13 职场文书
五好党支部事迹材料
2014/02/06 职场文书
户外活动策划方案
2014/03/12 职场文书
车间主任岗位职责
2014/03/16 职场文书
合伙经营协议书范本
2014/04/18 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL