纯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使用递归解决全排列数字示例
Feb 11 Python
python实现RSA加密(解密)算法
Feb 17 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Python定时任务sched模块用法示例
Jul 16 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
10个Python面试常问的问题(小结)
Nov 20 Python
python 爬取马蜂窝景点翻页文字评论的实现
Jan 20 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
详细分析Python垃圾回收机制
Jul 01 Python
python将图片转为矢量图的方法步骤
Mar 30 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 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
用来解析.htgroup文件的PHP类
2012/09/05 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php截取中文字符串函数实例
2015/02/23 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
音乐教学案例
2014/01/30 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python