如何使用Networkx将网络转换为另一个网络

时间:2015-04-16 15:53:58

标签: networking graph networkx

我有一个类似电影数据库的图表,即演员在电影中扮演角色。然后我需要将这个图转换为另一个图,显示“演员A知道演员B”。在Neo4j中,您执行http://www.kennybastani.com/2014/11/using-apache-spark-and-neo4j-for-big.html中给出的以下内容:

比赛(a1:人) - [:ACTED_IN] - >(m)< - [:ACTED_IN] - (coActors) CREATE(a1) - [:KNOWS] - >(coActors);

但是,由于我的图表在Networkx中,如果不搜索每个节点的整个图形,最有效的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明原始图是一个二分图。在networkx中,我们可以使用二分图的投影图来生成新图。如果两个节点在二分图中具有公共节点,则它们将在投影图中链接。

X,Y=bipartite.sets(G)
G1 = bipartite.projected_graph(G, X, multigraph=False)
G2 = bipartite.projected_graph(G, Y, multigraph=False)