[英]Put nodes names to a graph with Networkx python
我通過存儲鏈接權重的鄰接矩陣 A(numpy 矩陣)創建了一個圖 G(網絡庫)。
import numpy as np
import networkx as nx
A = np.loadtxt('SM_waste.csv',delimiter=';')
G = nx.from_numpy_matrix(A, parallel_edges=False, create_using=None)
我也有節點名稱列表,但我不知道如何將名稱分配給每個節點。 我能怎么做?
您可以遍歷節點並從行索引附加標簽。
偽造數據的示例:
import faker
import networkx as nx
for node in G.nodes():
G.nodes[node]['name'] = faker.Faker().name()
G.nodes(data=True)
使用一些假名稱,這會為十個節點輸出一個 NodeDataView,如下所示
>>> NodeDataView({0: {'name': 'Kayla Martin'}, 1: {'name': 'Billy Knight'}, 2: {'name': 'Joshua Landry'}, 3: {'name': 'Jessica Perez'}, 4: {'name': 'Emily Garcia'}, 5: {'name': 'Stephen Foster'}, 6: {'name': 'Timothy Howell'}, 7: {'name': 'Stephanie Gonzales'}, 8: {'name': 'Maurice Miller'}, 9: {'name': 'Emily Caldwell'}, 10: {'name': 'Amy Rice'}
在您的情況下,這可能類似於:
import numpy as np
import networkx as nx
A = np.loadtxt('SM_waste.csv',delimiter=';')
G = nx.from_numpy_matrix(A, parallel_edges=False, create_using=None)
labels = ["<list of your row labels here indexed according to the adjacency matrix>"]
for idx, node in enumerate(G.nodes()):
G.nodes[node]['label'] = labels[idx]
請注意,如果您使用data=True
調用G.nodes()
,上述解決方案可能不起作用。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.