纯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中正则表达式的使用详解
Oct 17 Python
python图像处理之反色实现方法
May 30 Python
用python实现对比两张图片的不同
Feb 05 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Python OpenCV实现视频分帧
Jun 01 Python
pandas计算最大连续间隔的方法
Jul 04 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Python爬虫开发与项目实战
Dec 16 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操作xml代码
2010/06/17 PHP
php搜索文件程序分享
2015/10/30 PHP
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python生成密码库功能示例
2017/05/23 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
中学实习教师自我鉴定
2013/12/12 职场文书
区三好学生主要事迹
2014/01/30 职场文书
研修第一天随笔感言
2014/02/15 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
师德师风的心得体会
2014/09/02 职场文书
质检员岗位职责范本
2015/04/07 职场文书
在职证明格式样本
2015/06/15 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
《静夜思》教学反思
2016/02/17 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL