Python 从CSV将节点/边导入NetworkX有向图的最快方法?

Python 从CSV将节点/边导入NetworkX有向图的最快方法?,python,numpy,networkx,directed-graph,Python,Numpy,Networkx,Directed Graph,我正在尝试从CSV提高NetworkX有向图填充的速度。现在我有一个直接的csv阅读器和图形添加情况: G = DiGraph() nodes = csv.DictReader(open(nodeFile, 'rU'), ['index', 'label', 'type']) for row in nodes: G.add_node(row['index'], {'index':row['index'], 'label':row['label'], 'type':row['type']}

我正在尝试从CSV提高NetworkX有向图填充的速度。现在我有一个直接的csv阅读器和图形添加情况:

G = DiGraph()
nodes = csv.DictReader(open(nodeFile, 'rU'), ['index', 'label', 'type'])
for row in nodes:
    G.add_node(row['index'], {'index':row['index'], 'label':row['label'], 'type':row['type']})
edges = csv.DictReader(open(edgeFile, 'rU'), ['v1', 'v2', 'weight'])
for row in edges:
    G.add_edge(row['v1'], row['v2'], row[weight'])
我正在处理的图形数据可能会变得相当大。就像10000000个节点一样大。内存不是问题,但简单的导入和导出操作可以更好地消耗花费在更重要的数据处理上的时间

有人有什么建议吗?我一直在搜索NetworkX,寻找可以帮助实现这一点的实用方法或技术。我甚至将导入CSV的要求简化为这3列,并删除了所有的值检查


提前感谢您的建议。

numpy
可以使用
loadtxt
genfromtxt
直接读取csv。但这两种方法都是逐行读取文件,在最终创建数组之前构建一个列表列表
pandas
有一个编译过的csv阅读器,应该会更快。我将介绍pandas,但使用numpy loadtxt将需要内存才能导入整个图形,然后将其导入NetworkX。genfromtxt可能会玩这个把戏,但我必须玩它。谢谢