日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?networkx中獲取圖的鄰接矩陣方式_python

作者:兔子愛讀書 ? 更新時間: 2023-01-15 編程語言

networkx如何獲取圖的鄰接矩陣

需要調取networkx中graph實例的鄰接矩陣,搜“network 鄰接矩陣”沒有迅速找到解決方案。我寫一個吧。

錯誤獲取

networkx中有個adjacency_matrix()函數,得到的鄰接表看形狀雖然是N*N,但是打印出來會發現是這個格式:

? (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), w in nx.adjacency_matrix(G):

? ? print(x, y, w)

正確獲取

import networkx as nx
import numpy as np
A=np.array(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.from_numpy_matrix(Matrix) ?

networkx自帶函數將鄰接矩陣轉為網絡圖

總結

原文鏈接:https://bluebird.blog.csdn.net/article/details/103466866

欄目分類
最近更新