You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Numpy高效实现扩展后双向图的节点间边初始化?

问题翻译

假设我们需要为3个节点构成的完全无向图(无自环)初始化双向边,可通过以下代码实现:

import numpy as np
node_num = 3
graph = np.ones([node_num, node_num]) - np.eye(node_num)

现在对该图进行扩展,扩展后的图为4个节点构成的完全二分图K2,2(两组各2个节点,组内节点无连接,组间节点两两双向连接),请问实现该扩展图边初始化的简单高效代码是什么?


解决方案

可以利用NumPy的切片赋值快速构造邻接矩阵,代码如下:

import numpy as np
node_num = 4
graph = np.zeros((node_num, node_num), dtype=int)
# 前2个节点与后2个节点互相建立双向边
graph[:2, 2:] = 1
graph[2:, :2] = 1

代码说明

  • 先创建一个4×4的全零矩阵,默认所有节点间无连接
  • 通过切片[:2, 2:]选中前2行、后2列的区域并赋值为1,代表前两个节点到后两个节点的单向边
  • 再通过[2:, :2]选中后2行、前2列的区域赋值为1,完成双向边的初始化
  • 全程用NumPy的向量化操作,比循环实现更高效,代码也更简洁直观

内容的提问来源于stack exchange,提问作者Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 23:46:01