一、矩阵乘法

矩阵乘法为 A@Bnp.dot(A,B) ,若为对应元素相乘则用 A*Bnp.multiply(A,B)

1. A@B 和 np.dot(A,B)

A = np.array([[1,2],[3,4]
])B = np.array([[1,2],[3,4]
])C1 = A @ B
C2 = np.dot(A,B)
print(C1)
print('---------')
print(C2)

输出为

[[ 7 10][15 22]]
---------
[[ 7 10][15 22]]

2. A*B 或 np.multiply(A,B)

A = np.array([[1,2],[3,4]
])B = np.array([[1,2],[3,4]
])C3 = A*B
C4 = np.multiply(A,B)
print(C3)
print('---------')
print(C4)

输出为

[[ 1  4][ 9 16]]
---------
[[ 1  4][ 9 16]]

二、邻接矩阵的相乘的意义

1.定义

假设存在一个N个节点的无向图。我们用 G[u][v] = G[v][u] = 1 表示从点 u 到点 v 有连边,否则 G[u][v] = G[v][u] = 0

2.问题

如果用这个图的邻接矩阵进行自乘会得到什么呢?

3.理解

模拟矩阵的运算有 G2[u][v]=∑i=1nG[u][G^{2}[u][v] = {\textstyle \sum_{i=1}^{n}} G[u][G2[u][v]=∑i=1n​G[u][i]∗G[]* G[]∗G[i][v]][v]][v]。也就是说 G2[u][v]G^{2}[u][v]G2[u][v] 是图上点 u 到点 v 恰好经过两条边的路径的条数的矩阵。

具体的解释为
我们可以把原始邻接矩阵 G[u][v]G[u][v]G[u][v] 看作为表示图上 u 到 v 恰好经过一条边的路径条数的矩阵。
那么 G2[u][v]=∑i=1nG[u][G^{2}[u][v] = {\textstyle \sum_{i=1}^{n}} G[u][G2[u][v]=∑i=1n​G[u][i]∗G[]* G[]∗G[i][v]][v]][v] 显然就是运用了乘法原理与加法原理。

类似的, G3[u][v]G^{3}[u][v]G3[u][v] 表示什么意思呢?
G3G^{3}G3 的计算过程 G3[u][v]=∑i=1nG[u][G^{3}[u][v] = {\textstyle \sum_{i=1}^{n}} G[u][G3[u][v]=∑i=1n​G[u][i]∗G[]* G[]∗G[i][][][j]∗G[]*G[]∗G[j][v]][v]][v] 。同理可知其表示为 图上点 u 到点 v 恰好经过三条边的路径的条数 的矩阵。或者我们也可以将其看作 G3=G2∗GG^{3}=G^{2}*GG3=G2∗G,其本质是相同的。

由上述不难发现该性质对于一般的正整数 k 都是成立的。即 GK[u][v]G^{K}[u][v]GK[u][v] 表示图上 u 到 v 恰好经过k条边的路径条数的矩阵。也就是说如果需要在某个图上求 u 到 v 恰好经过 K 条边的路径的条数,我们完全可以使用矩阵快速幂来优化这个计算过程。

4.代码实现

邻接矩阵如下

代码如下

import torch
# 构建邻接矩阵
a = [[0,1,1,1],[1,0,0,1],[1,0,0,1],[1,1,1,0]
]A = torch.tensor(a)
A = torch.mm(A,A)
print(A)

输出结果如下

tensor([[3, 1, 1, 2],[1, 2, 2, 1],[1, 2, 2, 1],[2, 1, 1, 3]])

python矩阵乘法运算相关推荐

  1. python tensorflow学习笔记(五)矩阵乘法运算

    相关公式 [0.36424586843872840.6675075448915823]×[0.134750808390697090.5863696301031353]=[0.44048858] \be ...

  2. 【Python】数据分析.numpy.矩阵乘法运算

    Python.numpy.矩阵乘法运算 声明:本文章转载于矩阵的乘法运算及Python实现 在讲矩阵相乘之前,我们先看一个生活中的例子. 假如猪肉.牛肉.鸡蛋的价格在一周内不发生变化,记录近三周内的价 ...

  3. python矩阵_Python 矩阵相关

    Python 中矩阵运算主要使用numpy库.NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数索引的元素表格(通常是元素是数字).因此对于随机查找来说,比pyt ...

  4. python 矩阵获取行数_4个最佳项目创意的代码片段和示例,旨在为Python和机器学习构建出色的简历!...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一篇文章带你了解4个最佳项目创意的代码片段和示例 Python是一 ...

  5. python矩阵的基本运算

    文章目录 一.python矩阵操作 二.python矩阵乘法 三.python矩阵转置 四.python求方阵的迹 五.python方阵的行列式计算方法 六.python求逆矩阵/伴随矩阵 七. py ...

  6. python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号

    如何理解[:-1]  [:,:-1] data = np.loadtxt('data.csv', delimiter = ',')     X = data[:,:-1]    #取所有行,取列到倒数 ...

  7. python 矩阵中的冒号 逗号

    python 矩阵中的冒号 逗号 https://blog.csdn.net/Strive_0902/article/details/78225691?utm_source=blogxgwz0 pyt ...

  8. 哈佛、MIT学者联手,创下矩阵乘法运算最快纪录

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 作为一种基本数学运算,矩阵乘法的运算速度一直是一个重要的研究课题.哈佛 ...

  9. python矩阵相加_【python矩阵相加怎么做,这可是证明python功能的大好机会】- 环球网校...

    [摘要]今天的python实践内容是为了让大家了解python矩阵相加方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...

最新文章

  1. LeetCode Trips and Users(关联、分组,聚合)
  2. android studio下的NDK开发详解
  3. c\c++ 随机数函数
  4. 标准缺失成发展阻碍 智能家居普及之路任重而道远
  5. 从未在一起更让人遗憾_擦肩而过的遗憾,远离家乡逆行武汉,盘点《在一起》那些泪目瞬间...
  6. Boost:gzip解压缩器
  7. OpenGL 基本帧缓冲对象实例
  8. java如何模拟请求_单元测试如何模拟用户请求
  9. 多模态语义分析_「CV学霸开讲」卷积神经网络压缩、多模态的语义分析研究
  10. 微软欲打造开发者联盟!
  11. win8.1计算机开启远程桌面连接不上,Win8.1电脑远程桌面无法连接提示“你的凭据不工作”怎么办...
  12. word2007修复工具_使用Word 2007作为博客工具
  13. Linux: fd_set用法
  14. 2015年度APP分类
  15. C++ 两点之间的距离
  16. 0x0F转换成二进制
  17. 项目初始化报 404 Not Found - GET https://registry.npmjs.org(转)
  18. 移动应用程序设计基础——期末考核——登录界面与简单日记本的综合实践
  19. linux 蓝牙打印机
  20. 远程互动 gk服务器,不要错过!GKUI APP远程控制教程

热门文章

  1. HBase数据库安装配置
  2. 提升演讲与说话能力看什么书?这本《演讲与口才必读12篇》不容错过哦
  3. CSS3属性text-shadow与box-shadow
  4. Unity Shader学习记录(15) —— Unity的光源类型
  5. m031开发 新唐_M031 系列
  6. 关于h5设配手机的一些jquery封装
  7. 【Vue】transition让你的v-if和v-show有个美美的过渡与动画
  8. Kotlin apply方法
  9. 感恩送书第1期:2019年快来了,感谢各位网友,送《Spring 5开发大全》
  10. PE文件-C++-MFC-IDA-逆向分析-x32dbg