Python图形库[关闭]


354

我正在编写一个将大量使用图形数据结构的python应用程序。没什么可怕的,但是我在想某种图形/图形算法库可以帮助我。我已经四处搜寻,但没有发现特别令我惊讶的地方。

有人有什么好的建议吗?


您在寻找哪种图形算法?
安德鲁

1
阿莫斯(Amoss),我一直在寻找一个可以在给定权重的情况下计算最短路径的图形库。基本的东西,真的。我最终选择了networkx。效果很好。不过,我有一段时间没碰过这个项目了。这个问题是一年多以前问的。
cpatrick

108
令人惊讶地奇怪的是,有这样的问题很有帮助,而像这样的人获得了更多的投票,可以归类为“没有建设性的”。
Jim Raynor 2014年

1
您还可以使用neo4j之类的“本机图数据库”,然后使用python绑定与db进行讨论。
STEFANI '16

3
@JimRaynor“不是建设性的”是一个老套。接近的原因已更新为更好(不是完美,但更好)涵盖了预期的用法。今天,这将作为建议问题结束。
jpmc26

Answers:


237

有两个绝佳的选择:

网络X

我喜欢NetworkX,但我也阅读有关igraph的好文章。我通常将NetworkX与具有1百万个节点的图一起使用而没有问题(这是大小为V + E的字典的开销的两倍)

如果要进行功能比较,请从Networkx讨论列表中查看

功能比较线程


4
特别是,我喜欢Networkx的地方...。它主要是python的,易于编辑和理解源代码,并且感觉大多是“ pythonic”的。
Gregg Lind)

1
我想知道,您是否将它与a *或类似算法一起使用?
dassouki 2010年

4
我只是评估了两者。networkx可通过安装pip,而igraph不能。这使得igraph更难以用作setup.py文件中的依赖项。
2012年

3
作为2013年的更新,我与networkx只是b要去/ C有一个github上和外观最先进的在这个答案的所有选项日期和他人
МатиТернер

1
igraph也有一个github:github.com/igraph/python-igraph
user_1_1_1 2015年

105

我想插入自己的图python库: graph-tool

它非常快,因为它是通过Boost Graph库的C ++实现的,并且包含许多算法和大量文档。


6
图形工具太棒了。
肖恩

5
+1对于图形工具。我们在实验室中一直在使用它。与其他python库相比,它确实非常快。此外,在图形工具中绘制和显示图形非常棒。虽然需要很多时间才能编译!
Dilawar

5
不幸的是,没有窗口支持:(
Mike Chaliy 2014年

2
@TiagoPeixoto这看起来非常有前景,但是不能在Windows上使用。我对NetworkX感到困惑,发现它太慢了。
Naman 2014年

2
@ColonelPanic这是一个常见问题解答,请参见graph-tool.skewed.de/download:“简短的答案是无法完成,因为graph-tool关键取决于某些(优秀)C ++库,例如Boost,它们是无法通过pip安装。”
Tiago Peixoto



6

1
好的一个dehmann,我是第一个这样做的人(是一名从事贸易和绝对热爱提升工作的C ++程序员),但是这让我感到恐惧:BGL-Python绑定不再得到维护<页首>
cpatrick

3
请看图工具,它是基于bgl的并且是活动的。
肖恩



0

我第二次zweiterlinde建议使用python-graph。我已将其用作我正在从事的基于图的研究项目的基础。该库编写良好,稳定且具有良好的接口。作者还可以迅速答复查询和报告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.