微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 NetworkX

如何解决如何从 NetworkX

我想做的是在 NetworkX 中构建一个图,其中每个节点都是一个火车站。构建我所做的节点:

G = nx.Graph()
G.add_nodes_from(trains['Stopping place'].unique())

它(至少看起来像)它正在工作。
现在,因为对于每一行我都有按顺序停止,我像这样构建我的路径:

stops_by_line = ((belgium_trains.sort_values(['Train number','Actual arrival datetime']).groupby('Train number'))['Stopping place'].apply(list).to_dict())
paths = ([tuple(val) for val in stops_by_line.values()])

变量如下所示:

[('HERGENRATH','CHENEE','ANGLEUR','LIEGE-GUILLEMINS','ANS','LEUVEN','HERENT','VELTEM','ERPS-KWERPS','KORTENBERG','NOSSEGEM','ZAVENTEM','DIEGEM','HAREN-ZUID','SCHAARBEEK','BRUSSEL-NOORD','BRUSSEL-CONGRES','BRUSSEL-CENTRAAL','BRUSSEL-KAPELLEKERK','BRUSSEL-ZUID'),(...other ordered tuples of stops),...)]

现在我的问题是,由于所有这些元素也是节点名称,我如何依次使用这些元组构建边(例如,在 BRUSSEL-NOORD 和 BRUSSEL-CONGRES 之间添加一条边,然后从 BRUSSEL-CONGRES 到 BRUSSEL -CENTRAAL 等等)?

解决方法

您可以简单地在循环中使用 add_path 方法:

for path in paths:
    nx.add_path(G,path)

Sidemark,如果你添加了一条边(比如上面的例子),那么 networkx 也会直接将相应的节点添加到图中。所以可能(如果所有站点都被某列火车覆盖)您之前不需要手动添加节点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。