将二分图转换为邻接矩阵python

时间:2016-03-14 11:24:42

标签: python python-2.7 networkx

我正在尝试转换格式为

的边列表
data = [('a', 'developer'),
         ('b', 'tester'),
        ('b', 'developer'),
         ('c','developer'),
         ('c', 'architect')]

其中邻接矩阵将采用

的形式
      developer     tester    architect
a        1            0          0
b        1            1          0
c        1            0          1

我想以下列格式存储矩阵

 1    0    0
 1    1    0
 1    0    1

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

使用networkx

可以轻松完成此操作
from operator import itemgetter

import networkx as nx
from networkx.algorithms.bipartite import biadjacency_matrix

def to_adjacency_matrix(data):
    g = nx.DiGraph()
    g.add_edges_from(data)
    partition_1 = set(map(itemgetter(0), data))
    return biadjacency_matrix(g, partition_1).toarray()