基于Python之邻接矩阵沿对角线拼接操作简单方法

简介: 基于Python之邻接矩阵沿对角线拼接操作简单方法

图的邻接矩阵一般定义是:节点与节点之间的边构成一个矩阵,比如:一张图片有N个节点,那么邻接矩阵的维度就是[N,N]大小,矩阵的每个值表示对应两个节点之间是否有边相连接,连接则值设为1,否则设为0(下图就是一张节点N=20的邻接矩阵)。

一、目的是将两个任意大小的邻接矩阵进行沿对角线拼接,并把空缺的部分填充上0,表示拼接的两个图的节点之间并无任何连接。

二、首先初始化一个N=5和3的邻接矩阵,并且各图的节点之间全连接,矩阵的值全为1。在将矩阵a和矩阵b选择下面两种方式进行沿对角线拼接。

  • 横向拼接
  • 纵向拼接
import numpy as np
import torch
a = torch.ones(5,5).numpy() # 5*5的邻接矩阵
b = torch.ones(3,3).numpy() # 3*3的邻接矩阵
print(a)
print(b)

三、(横向拼接)然后将矩阵a和一个长为a大小,宽为b大小的零矩阵垂直拼接得到左矩阵,再将一个长为b大小,宽为a大小的零矩阵和b垂直拼接得到右矩阵,再将两者横向拼接。

lena = len(a) # 矩阵a的长度
lenb = len(b) # 矩阵b的长度
leftmaxtric = np.row_stack((a, np.zeros((lenb, lena))))  # 先将矩阵a和一个长为a大小,宽为b大小的零矩阵垂直拼接,得到左矩阵
rightmaxtric = np.row_stack((np.zeros((lena, lenb)), b))  # 再将一个长为b大小,宽为a大小的零矩阵和b垂直拼接,得到右矩阵
maxtirc = np.hstack((leftmaxtric, rightmaxtric))  # 将左右矩阵水平拼接
print(maxtirc)

四、(纵向拼接)先将矩阵a和一个长为b大小,宽为a大小的零矩阵水平拼接,得到上半边,再将一个长为a大小,宽为b大小的零矩阵和b水平拼接,得到下半边,再将两者纵向拼接。

lena = len(a) # 矩阵a的长度
lenb = len(b) # 矩阵b的长度
topmaxtric = np.column_stack((a, np.zeros((lena, lenb))))  # 先将矩阵a和一个长为b大小,宽为a大小的零矩阵水平拼接,得到上半边
floormaxtric = np.column_stack((np.zeros((lenb, lena)), b))  # 再将一个长为a大小,宽为b大小的零矩阵和b水平拼接,得到下半边
maxtirc = np.vstack((topmaxtric, floormaxtric))  # 将上下矩阵纵向拼接
print(maxtirc)


相关文章
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
709 1
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
467 2
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
320 0
|
传感器 大数据 API
Python数字限制在指定范围内:方法与实践
在Python编程中,限制数字范围是常见需求,如游戏属性控制、金融计算和数据过滤等场景。本文介绍了五种主流方法:基础条件判断、数学运算、装饰器模式、类封装及NumPy数组处理,分别适用于不同复杂度和性能要求的场景。每种方法均有示例代码和适用情况说明,帮助开发者根据实际需求选择最优方案。
593 0
Python字符串center()方法详解 - 实现字符串居中对齐的完整指南
Python的`center()`方法用于将字符串居中,并通过指定宽度和填充字符美化输出格式,常用于文本对齐、标题及表格设计。
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1799 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
592 4
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
373 0
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
708 0
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
1063 0

推荐镜像

更多