纯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函数的参数的默认值所引发的问题的原因
Mar 30 Python
python中reduce()函数的使用方法示例
Sep 29 Python
Python 实现选择排序的算法步骤
Apr 22 Python
Django学习教程之静态文件的调用详解
May 08 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
python爬虫超时的处理的实例
Dec 19 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
Python实现播放和录制声音的功能
Aug 12 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
Apr 21 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入门学习的几个不错的实例代码
2008/07/13 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
javascript JSON操作入门实例
2010/04/16 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
django 单表操作实例详解
2019/07/30 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
商铺租赁意向书
2014/04/01 职场文书
房屋出租协议书
2014/04/10 职场文书
股东协议书
2014/04/14 职场文书
农民工讨薪标语
2014/06/26 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
新学期红领巾广播稿
2014/10/04 职场文书