如何在python

时间:2017-11-17 14:17:20

标签: python graph networkx

嗨我有一个大文本文件,格式如下:

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等)

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')