印象的なperformance comparisonを見てから、グラフツールを試してみることにしました。比較のために、私は両方のパッケージを使用してランダムなツリーを生成するコードを書きました。GraphxはNetworkxに比べて驚くほど遅い
グラフツールコード:
import numpy as np
import graph_tool.all as gt
# construct an initial graph with two nodes and one link
n = 5000
G = gt.Graph(directed = False)
G.add_edge(0, 1)
for t in range(2, n):
# connect the new vertex to one of the old vertices randomly
G.add_edge(np.random.choice(range(t)), t)
Networkxコード:
import networkx as nx
import numpy as np
n = 5000
# initial graph
G = nx.Graph()
G.add_edge(0, 1)
for t in range(2, n):
G.add_edge(t, np.random.choice(range(t)))
networkxがオン2秒未満を要するのに対し、グラフツールは、私の4コアマシン上で約14秒かかり同じマシン!私は明白な何かを欠いていますか
ありがとうございます。
をですべてのエッジを追加し、一度の代わりに、1つずつであっても高速になります(例えば、既存のグラフの検索をたくさん行うなど)他のユースケースよりも遅いです。 – Blckknght
実際に私はこれでもっと複雑なコードを実行していますが、networkxは私にとってより良いパフォーマンスを提供しています。 (この1つ:http://link.springer.com/article/10.1140/epjb/e2015-60501-y#page-1) – Peaceful
ネットワークの初期化について何か遅いことがありますか? – Joel