def efficient_projected_graph(B, nodes):
g = nx.Graph()
nodes = set(nodes)
g.add_nodes_from(nodes)
b_nodes = set(B.nodes())
i = 0
nodes = set(nodes)
tenpercent = len(b_nodes) / 10
for n in b_nodes:
if i % tenpercent == 0:
logging.info(str(10 * i / tenpercent) + "%")
i += 1
nbrs = list(set([nbr for nbr in B[n]]) & nodes - set([n]))
if n in nodes:
for nbr in nbrs:
if not g.has_edge(n, nbr):
g.add_edge(n, nbr)
for nbr1 in nbrs:
for nbr2 in nbrs:
if nbr1 < nbr2:
if not g.has_edge(nbr1, nbr2):
g.add_edge(nbr1, nbr2)
del nbrs
return g
评论列表
文章目录