纯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 相关文章推荐
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
基于python的字节编译详解
Sep 20 Python
python中如何使用正则表达式的非贪婪模式示例
Oct 09 Python
python 读入多行数据的实例
Apr 19 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 Python
Python嵌套式数据结构实例浅析
Mar 05 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Python中if有多个条件处理方法
Feb 26 Python
python 模拟登录B站的示例代码
Dec 15 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基础学习之流程控制的实现分析
2013/04/28 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
js文件缓存之版本管理详解
2013/07/05 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
快速了解Python相对导入
2018/01/12 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
Python Http请求json解析库用法解析
2020/11/28 Python
高中生毕业自我鉴定
2013/10/10 职场文书
小学生自我鉴定
2013/10/12 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
岗位职责的构建方法
2014/02/01 职场文书
会计岗位描述
2014/02/22 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
在python中读取和写入CSV文件详情
2022/06/28 Python