我阅读了 Python Patterns - Implementing Graphs 。但是,此实现对于获取指向节点的边而言效率低下。
在其他语言中,常见的解决方案是使用二维数组,但在 Python 中执行此操作需要列表的列表。这似乎不是pythonic。
什么是 python 中的有向图的实现,其中快速找到所有节点的边缘节点(作为两个单独的列表)?
原文由 jan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我阅读了 Python Patterns - Implementing Graphs 。但是,此实现对于获取指向节点的边而言效率低下。
在其他语言中,常见的解决方案是使用二维数组,但在 Python 中执行此操作需要列表的列表。这似乎不是pythonic。
什么是 python 中的有向图的实现,其中快速找到所有节点的边缘节点(作为两个单独的列表)?
原文由 jan 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用的另一个库是 NetworkX 。它提供了有 向图 的实现,该图提供了获取任意节点集的传入边 DiGraph.in_edges()
和传出边 DiGraph.out_edges()
的函数。链接文档中提供了使用示例,但遗憾的是我没有看到有关效率或运行时间的任何详细信息。
原文由 Michael Mauderer 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答864 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
如果您关心计算效率或科学计算,Scipy 提供高效的图形例程:
http://docs.scipy.org/doc/scipy/reference/sparse.csgraph.html