python矩阵乘法运算

article/2025/10/18 21:49:39

一、矩阵乘法

矩阵乘法为 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.理解

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

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

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

由上述不难发现该性质对于一般的正整数 k 都是成立的。即 G K [ 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]])

http://chatgpt.dhexx.cn/article/XcHmXUos.shtml

相关文章

Python矩阵基本运算

文章目录 一、python矩阵操作二、python 矩阵乘法三、python 矩阵转置四、python 求方阵的迹五、python 方阵的行列式计算方法六、python 求逆矩阵 / 伴随矩阵七、python 解多元一次方程 一、python矩阵操作 引入numpy, 使用mat函数创建一个2X3矩阵 #引入numpy im…

python未知数的矩阵运算,机器学习的数学 之python矩阵运算

本文提纲 1. 什么是矩阵 2. 矩阵在现实应用场景 3. 矩阵表示 4. 矩阵运算 5. 理解矩阵乘法 一、 什么是矩阵 一个 m n 的矩阵是一个由 m 行 n 列元素排列成的矩形阵列。以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵: 矩阵属于线性代数数学分支。线性代数是关于向量空间和…

机器学习数学基础之Python矩阵运算

机器学习数学基础之Python矩阵运算 1.在Jupyter中写下Python矩阵基本运算学习记录1.1 python矩阵操作1.1.1 首先打开jupyter,引入numpy1.1.2 创建一个矩阵a并调用1.1.3 使用 shape可以获得矩阵大小1.1.4 使用下标读取矩阵中元素1.1.5 进行行列转换1.1.6 使用二维数组…

python矩阵的基本运算

文章目录 一、python矩阵操作二、python矩阵乘法三、python矩阵转置四、python求方阵的迹五、python方阵的行列式计算方法六、python求逆矩阵/伴随矩阵七、 python解多元一次方程用python的 一、python矩阵操作 先引入numpy,以后的教程中,我们都引用为n…

python:矩阵的基本运算

一、Python 矩阵基本运算 引入 numpy 库 import numpy as np 1. python矩阵操作 1)使用 mat 函数创建一个 2X3矩阵 a np.mat([[1, 2, 3], [4, 5, 6]])2)使用 shape 可以获取矩阵的大小 a.shape 3)进行行列转换 a.T 4)使用…

html轮播图点击图片放大,jq点击图片 放大轮播

展示效果: 实现逻辑:点击图片的时候 把第一块(外观)的所有图片数据 直接赋值到弹框上. 用的swiper这个轮播,自带动画 html 放上源码Document // 字体 document.documentElement.style.fontSize = document.documentElement.clientWidth / 6.4

简易的JQ轮播图

一、主体程序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <!DOCTYPE html> < html > < head > < meta charset "utf-8" /> < title >轮播图①&#xff08;手动点击轮播&#xff09;&…

用jq实现轮播图片的效果

用jq实现轮播图片的效果 使用jq实现简单的图片轮播效果&#xff0c;图片自动轮播功能&#xff0c;左右点击滑动功能&#xff0c;鼠标进入数字列表时实现图片滑动功能&#xff1b;主要是通过操作图片数组删除和添加的元素&#xff0c;然后重新渲染页面的方式来实现轮播。 1.效…

用jq撸一个简易轮播图

本次文章我将来用jq实现一个轮播图&#xff0c;废话少说下面放效果 先说下基本思想&#xff0c;先将item使用position: absolute;脱离文档流令他们叠在一起&#xff0c;使用z-index来实现轮播的效果&#xff0c;注&#xff1a;这里如果没把每一项absolute的话是没法用z-index的…

js jQ轮播图(三种)

第一种: 用了css3进行3D效果轮播 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta…

jq轮播图2

今天续着上一期的来给大家讲另外一种方法的轮播图   这种方法可以实现无缝轮播,原理就是我们在自己预先想要设置轮播的那一组照片后边,用jq语言在另外加上一组相同的照片,相当于现在的长度就是两组照片的长度,我们将初始的图片索引值就先定在我们复制的第一张图片上,就是…

jQuery实现一个简单的轮播图

一.轮播图内容组成 包括&#xff1a;4张图片&#xff0c;图片标号&#xff0c;向左翻页&#xff0c;向右翻页的几个部分&#xff0c;如下图所示&#xff1a; 二.实现功能 1.加载页面后&#xff0c;4张图片默认从第一张图片开始轮播&#xff0c;索引值为1。 2.当把鼠标over到…

jQuery实现各种轮播图

目录 无限循环滚动 百叶窗 轮播一 轮播二 轮播三 无限循环滚动 * {margin: 0;padding: 0;}div {width: 1120px;height: 300px;border: 1px solid #000;margin: 100px auto;overflow: hidden;}ul {list-style: none;width: 3360px;height: 300px;background: #000;/* backgro…

git上传代码简单方法 简单git上传代码工具

简单git上传代码工具 肯定有很多人和我一样&#xff0c;git上传时候搞不懂拉取&#xff0c;合并等一系列的代码冲突问题&#xff0c;往往可能覆盖掉自己今天写的代码&#xff0c;或者覆盖掉别人的代码。 下面给大家简单介绍一款操作比较简单的上传代码工具&#xff1a;下图这款…

Git上传代码到GitHub

版本控制&#xff1a;使用Git上传代码到GitHub 本文将帮助大家学会使用Git&#xff08;版本管理工具&#xff09;软件把电脑中的代码或项目上传到GitHub&#xff08;项目托管平台&#xff09;中。 要上传代码到GitHub中&#xff0c;是必须要安装Git软件的&#xff0c;不管是直…

如何向github上传代码

说明&#xff1a;本人亲测可行 1.首先你要安装git才行&#xff0c;这里不说明。 2.在github上创建个人仓库: 3.复制仓库地址&#xff1a; 4.在本地随便创建一个文件夹&#xff08;注意路径不要中文&#xff09; 5.进入文件中&#xff0c;鼠标右键如果安装成功git,菜单中会多出…

git上传代码到git/码云gitee

一、首先需要下载git https://git-scm.com/ 输入命令:git --version 可查看当前git版本 二.安装后需要一些配置 配置用户名和邮箱: $ git config --global user.name "qinyong" $ git config --global user.email "emailexample.com" qinyong是自…

如何在mac端上用git上传代码到码云

前言&#xff1a;作为一个合格的猿&#xff0c;SVN的使用相信大家已经非常熟悉了&#xff0c;GIT作为一个强大的版本控制工具&#xff0c;也是非常有必要深入学习的。对比两个工具&#xff0c;说说GIT的优缺点&#xff1a; 优点&#xff1a;1、GIT拥有全世界的资源&#xff0c;…

git上传代码到gitee仓库步骤

默认电脑第一次安装git且未设置过SSH key 安装git 创建gitee仓库 生成SSH密钥 在你想上传文件所在的文件夹内右键&#xff0c;打开git bash&#xff0c;第一次使用Git时需要先生成SSH ssh-keygen -t rsa -C "your_email"注意&#xff1a;ssh-keygen中间没有空格提…

git上传代码到码云(详细)

一、安装git .要使用git 先安转git 请到官网下载最新git http://git-scm.com/downloads 安装完成右键查看下是否有如下图所示的图标 二、本地建立git文件 本次建立的git文件是在本地完成的项目上建立的。找到当前完成项目的文件夹完成如下代码 &#xff08;1&#xff09;“…