def generate_subsets_graph(data_mask, live_pointsp, graph, _):
# generate data subsets which share points.
firstmember = numpy.where(data_mask)[0][0]
allp = numpy.unique(live_pointsp[:,data_mask].flatten())
if len(live_pointsp[:,firstmember]) == len(allp):
# trivial case: all live points are the same across data sets
yield data_mask, live_pointsp[:,firstmember]
return
subgraphs = list(networkx.connected_component_subgraphs(graph, copy=False))
if len(subgraphs) == 1:
yield data_mask, allp
return
# then identify disjoint subgraphs
for subgraph in subgraphs:
print 'networkx subgraph:', subgraph.nodes()
member_data_mask = numpy.zeros(len(data_mask), dtype=bool)
member_live_pointsp = []
for nodetype, i in subgraph.nodes():
if nodetype == 0:
member_data_mask[i] = True
else:
member_live_pointsp.append(i)
yield member_data_mask, member_live_pointsp
profile_generate_subsets.py 文件源码
python
阅读 29
收藏 0
点赞 0
评论 0
评论列表
文章目录