纯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 相关文章推荐
在Django的视图(View)外使用Session的方法
Jul 23 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
python模块导入的细节详解
Dec 10 Python
Django 外键的使用方法详解
Jul 19 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python 实现音频叠加的示例
Oct 29 Python
python 实现逻辑回归
Dec 30 Python
基于Python实现流星雨效果的绘制
Mar 18 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 高手之路(二)
2006/10/09 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
php时间戳转换代码详解
2019/08/04 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python中标准模块importlib详解
2017/04/16 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
《落花生》教学反思
2014/02/25 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
法制宣传教育方案
2014/05/09 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
初中差生评语
2014/12/29 职场文书
国博复兴之路观后感
2015/06/02 职场文书
导游词之西安骊山
2019/12/20 职场文书
html5表单的required属性使用
2021/07/07 HTML / CSS
Ruby处理YAML和json数据
2022/04/18 Ruby