纯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获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
python实现DNS正向查询、反向查询的例子
Apr 25 Python
详解Python中for循环的使用方法
May 14 Python
浅析Python编写函数装饰器
Mar 18 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python 查看文件的编码格式方法
Dec 21 Python
PyQt5每天必学之进度条效果
Apr 19 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
Python字符串中添加、插入特定字符的方法
Sep 10 Python
Django静态文件加载失败解决方案
Aug 26 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
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php三元运算符知识汇总
2015/07/02 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
ECMAScript 基础知识
2007/06/29 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
解读Django框架中的低层次缓存API
2015/07/24 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
python调用百度REST API实现语音识别
2018/08/30 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
Python 如何在字符串中插入变量
2020/08/01 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
总务岗位职责
2013/11/19 职场文书
公司市场部岗位职责
2013/12/02 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
2014年计生标语
2014/06/23 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
贪污检举信范文
2015/03/02 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
员工离职证明范本
2015/06/12 职场文书
pytorch MSELoss计算平均的实现方法
2021/05/12 Python
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers