纯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获得时间的实例说明
Mar 25 Python
Python3基础之基本数据类型概述
Aug 13 Python
Python压缩和解压缩zip文件
Feb 14 Python
Python中使用partial改变方法默认参数实例
Apr 28 Python
python异常和文件处理机制详解
Jul 19 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
dataframe设置两个条件取值的实例
Apr 12 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
Python如何在main中调用函数内的函数方式
Jun 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
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
php开发文档 会员收费1期
2012/08/14 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
将list转换为json失败的原因
2013/12/17 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
Python 装饰器深入理解
2017/03/16 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
名片管理系统python版
2018/01/11 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python使用KNN算法识别手写数字
2019/04/25 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
如何在python中实现随机选择
2019/11/02 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
春节晚会主持词
2014/03/24 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
军训后的感想
2015/08/07 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
Python中for后接else的语法使用
2021/05/18 Python