2009-03-03 8 views
285

グラフデータ構造を大量に使用するPythonアプリケーションを作成しています。恐ろしく複雑なものはありませんが、グラフ/グラフアルゴリズムのライブラリが私を助けてくれると思っています。私は周りを探索したが、私は特に私に飛び跳ねるものは見つけられない。Pythonグラフライブラリ

誰でも良い推薦がありますか?

+0

お探しのグラフアルゴリズムはどれですか? – Amoss

+1

Amoss、私はウェイトを与えられた最短パスを計算できるグラフライブラリを探していました。基本的なもの、本当に。私はnetworkxに行くことになった。それはかなりうまくいく。私はしばらくのうちにプロジェクトに触れていない。この質問は1年以上前に尋ねられました。 – cpatrick

+69

このような質問が有益であり、これほど多くの投票権を得ることは「建設的ではない」と分類されることは驚くほど奇妙です。 –

答えて

204

を見てみたいことがあります

NetworkX

と私はNetworkXが好き

igraph

は、私igraphについても良いことを読んでください。私は日常使用すると、機能の比較をしたい場合は、

Networkx-議論リストからこれを見る(それは大きさV + Eの辞書のおよそダブルオーバーヘッドだ)問題なく100万個のノードを持つグラフで

をNetworkXを使用します

Feature comparison thread

+4

特にNetworkxについて私が好きなのは、ほとんどがPythonで、ソースコードを編集して理解しやすく、ほとんどが「pythonic」だと感じています。 –

+1

私はあなたが*または同様のアルゴリズムでそれを使用したことがありますか? – dassouki

+3

私はちょうど両方を評価しました。 'networkx'は' pip'を介してインストール可能ですが、 'igraph'はインストールできません。これは 'igraph'を' setup.py'ファイルの依存関係として使うのを難しくします。 – exhuma

29

python-graphを見ましたか?私は自分で使ったことはありませんが、プロジェクトページは有望です。

4

Boost Graph Library - Python Bindingsを使用してください。

+1

素敵なdehmann、まずは(C++のプログラマーになって、絶対に好きなブーストで)プログラマですが、これは私を恐れています: BGL-Pythonバインディングはもはや維持されていません cpatrick

+2

代わりにgraph-toolを見てください。それはbglベースでアクティブです。 – Sean

7

また、次の2つの優れた選択肢がありますNetworkX

90

私は自分のグラフのPythonライブラリを接続したいと思っています:graph-tool

これはBoost Graph Libraryを使用してC++で実装されており、多くのアルゴリズムと豊富なドキュメントが含まれているため、非常に高速です。

+6

グラフツールは素晴らしいです。 – Sean

+4

+1グラフツール用。我々はそれを私たちの研究室で使ってきました。それは他のPythonライブラリと比べて本当に速いです。グラフを描画して表示することは、グラフツールでは非常に素晴らしいです。コンパイルに多くの時間がかかります! – Dilawar

+0

私は、これらのグラフライブラリのパフォーマンスを比較するためのリンクを読者に提供する方が良いと思います:http://graph-tool.skewed.de/performance – MengT

0

などの異なるプラットフォーム上でのpython-グラフを使用する2番目のzweiterlindeの提案をインストールして設定するのは難しいです。私はそれを私が取り組んでいるグラフベースの研究プロジェクトの基礎として使ってきました。ライブラリはよく書かれており、安定しており、良好なインタフェースを持っています。著者は、問い合わせや報告に素早く対応しています。

関連する問題