利用网络X模块,我做了一些网络分析,即:在Vald 3.2下,我需要将一张双部分图表(与牢房有联系的囚犯:下文代码表B中的内容)投到一个小段(如果二者在同一囚室有重叠的话,将囚室相互连接起来:利用确定图表B中囚犯人数的固定节点,产生产出图G)。 我不需要一种特殊的算法来得出任何或最佳的配对,我只需要收集满足某些条件的所有链接。 因此,我发现的其他SO员额实际上不适用。 但:
我目前的法典正在被炸(RAM-、swap-和CPU-wise),因为我提供了越来越多的数据。 请让我知道,你是否看到将《守则》精简为五层 lo。 我确信,对网络x的任何了解都是必要的,或者我贴近特征标签的细节是相关的。 感谢!
def time_overlap_projected_graph_parallel(B, nodes):
G=nx.MultiGraph()
G.add_nodes_from((n,B.node[n]) for n in nodes)
for u in nodes:
unbrs = set(B[u])
nbrs2 = set((n for nbr in unbrs for n in B[nbr])) - set([u])
for v in nbrs2:
for mutual_cell in set(B[u]) & set(B[v]):
for uspell in B.get_edge_data(u,mutual_cell).values():
ustart = uspell[1]
uend = uspell[2]
for vspell in B.get_edge_data(v,mutual_cell).values():
vstart = vspell[1]
vend = vspell[2]
if uend > vstart and vend > ustart:
ostart = max(ustart,vstart)
oend = min(uend,vend)
olen = (oend-ostart+1)/86400
ocell = mutual_cell
if (v not in G[u] or ostart not in [ edict[1] for edict in G[u][v].values() ]):
G.add_edges_from([(u,v,{0: olen,1: ostart,2: oend,3: ocell})])
return G