嗨我有一个大文本文件,格式如下:
1 3 1
2 3 -1
5 7 1
6 1 -1
3 2 -1
第一列是起始节点,第二列是结束节点,第三列是两个节点之间的符号。所以我有正面和负面的迹象。 我正在阅读下面的代码:
G = nx.Graph()
G = nx.read_edgelist('network.txt', delimiter='\t', nodetype=int, data=(('weight', int),))
print(nx.info(G))
我还找到了一个函数来查找特定节点的邻居:
list1 = list(G.neigbors(1))
所以我有一个列表与节点1的邻接节点。如何找到节点1和每个邻接节点之间的符号? (例如,1-3之间的边缘具有符号1,边缘1-5具有符号-1等)
答案 0 :(得分:1)
节点1
的示例:
n_from = 1
for n_to in G.neighbors(n_from):
sign = G[n_from][n_to]['weight']
print('edge from {} to {} has sign {}'.format(
n_from, n_to, sign))
打印,为您提供的示例输入:
边缘从1到3有符号1
边缘从1到6有符号-1
类似的方法,将G[n_from]
视为 dict :
n_from = 1
for n_to, e_data in G[n_from].items():
sign = e_data['weight']
# then print
您也可以使用Graph.get_edge_data
,因此:
e_data = G.get_edge_data(n_from, n_to)
sign = e_data.get('weight')