开发者

Python networkx中获取图的邻接矩阵方式

开发者 https://www.devze.com 2022-12-17 09:22 出处:网络 作者: 兔子爱读书
目录networkx如何获取图的邻接矩阵错误获取正确获取邻接矩阵 转 网络图总结networkandroidx如何获取图的邻接矩阵
目录
  • networkx如何获取图的邻接矩阵
    • 错误获取
    • 正确获取
  • 邻接矩阵 转 网络图
    • 总结

      networkandroidx如何获取图的邻接矩阵

      需要调取networkx中graph实例的邻接矩阵,搜“network 邻接矩阵”没有迅速找到解决方案。我写一个吧。

      错误获取

      networkx中有个adjacency_matrix()函数,得到的邻接表看形状虽然是N*N,但是打印出www.devze.com来会发现是这个格式:

        (0, 1)    1

        (0, 30)    1

        (0, 33)    1

        (0, 99)    1

      第一列是源头和终止节点,第二列是权重。

      但是,如果你下列语句遍历,是会报错的:ValueError: not enough values to unpack (expected 2, got 1)

      # 错误示范
      
      for (x,y), androidw in nx.adjacency_www.devze.commatrix(G):
      
        print(x, y, w)

      正确获取

      import networkx as nx
      import numpy as np
      A=np.array(开发者_Go学习nx.adjacency_matrix(G).todense())

      转换为numpy矩阵是因为原始的格式不支持A[i][j]形式的索引。 

      成功得到邻接矩阵,解决!

      [[0 0 0 ... 0 0 1]

       [0 0 1 ... 0 0 0]

       [0 1 0 ... 0 0 0]

       ...

       [0 0 0 ... 0 0 0]

       [0 0 0 ... 0 0 1]

       [1 0 0 ... 0 1 0]]

      邻接矩阵 转 网络图

      逛知乎看到的,老是忘记,记一下:

      import networkx as nx
      graph = nx.frhttp://www.devze.comom_numpy_matrix(Matrix) 

      networkx自带函数将邻接矩阵转为网络图

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消