繁体   English   中英

使用 numpy 在节点之间进行图边初始化?

[英]Graph Edges intialization between nodes using numpy?

假设我必须为节点之间的以下图形初始化双向边:

在此处输入图像描述

我可以使用以下代码轻松地做到这一点:

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

现在我按以下方式扩展此图:

在此处输入图像描述

为这个图编写代码的简单有效的方法是什么?

假设您正在寻找邻接矩阵,您可以使用:

out = np.block([
    [1 - np.eye(3), np.eye(3)       ],
    [    np.eye(3), np.zeros((3, 3))]
]).astype(int)

出去:

array([[0, 1, 1, 1, 0, 0],   # A
       [1, 0, 1, 0, 1, 0],   # B
       [1, 1, 0, 0, 0, 1],   # C
       [1, 0, 0, 0, 0, 0],   # BC
       [0, 1, 0, 0, 0, 0],   # AB
       [0, 0, 1, 0, 0, 0]])  # AB(red)

但我建议您将其初始化为输出的邻接矩阵。 对于非常简单的图形,我只会使用一个短的衬垫,比如你的第一张图片,而不是第二张图片。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM