纯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 装饰器功能以及函数参数使用介绍
Jan 27 Python
Python中多线程及程序锁浅析
Jan 21 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
python实现批量解析邮件并下载附件
Jun 19 Python
python实现指定文件夹下的指定文件移动到指定位置
Sep 17 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
python 简单的调用有道翻译
Nov 25 Python
详解Python自动化之文件自动化处理
Jun 21 Python
python中取整数的几种方法
Nov 07 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搜索加分页
2016/10/12 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
Js基础学习资料
2010/11/23 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
JavaScript模拟push
2016/03/06 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
javascript实现简单留言板案例
2021/02/09 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python进阶之尾递归的用法实例
2018/01/31 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
介绍一下write命令
2012/09/24 面试题
大学生村官心得体会范文
2014/01/04 职场文书
小松树教学反思
2014/02/11 职场文书
总账会计岗位职责
2014/03/13 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
单位消防安全责任书
2014/07/23 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书