我有一个拥有大约5000个节点的庞大图形,是使用networkX创建的。每次执行我的脚本,创建这个图需要大约30秒的时间。在这相对较长的时间之后,我才能运行像shortest_path
等分析。
我的问题是,是否有任何方法可以将此图的对象存储在文件或类似的东西中,并且每次运行我的脚本时,networkX读取该文件并加载我的整个图形?
我有一个拥有大约5000个节点的庞大图形,是使用networkX创建的。每次执行我的脚本,创建这个图需要大约30秒的时间。在这相对较长的时间之后,我才能运行像shortest_path
等分析。
我的问题是,是否有任何方法可以将此图的对象存储在文件或类似的东西中,并且每次运行我的脚本时,networkX读取该文件并加载我的整个图形?
从2.6版本开始,方法 write_gpickle
和 read_gpickle
已被弃用。请改用以下方法:
import pickle
# save graph object to file
pickle.dump(G, open('filename.pickle', 'wb'))
# load graph object from file
G = pickle.load(open('filename.pickle', 'rb'))
open()
中使用选项'wb'
进行转储,以及选项'rb'
进行加载。你可以使用 gpickle
来实现这一点。假设你的图形用 G
表示,你可以通过以下方式保存它:
nx.write_gpickle(G,'myGraph.gpickle')
并加载它
G = nx.read_gpickle('myGraph.gpickle')
https://networkx.org/documentation/stable//reference/readwrite/gpickle.html#pickled-graphs