NetworkX 是一个进行复杂图形网络分析的 Python 软件包。要了解 NetworkX 功能,首先需要了解图形。图形是一种数学结构,用于对物理、生物、社会和信息系统中多种类型的关系和过程进行建模。图形由通过边缘连接(表示这些实体之间的关系)的节点或顶点(表示系统实体)构成。图形处理是一种能够穿梭各边缘和节点的功能,用于发现和理解网络中关联数据之间的复杂关系和/或优化路径。
图形网络分析有许多用途,例如分析社交网络中的关系、网络威胁检测,以及根据共同偏好识别潜在买家。
在现实世界中,节点可以是人员、群组、地点或事物,例如客户、产品、成员、城市、商店、机场、端口、银行帐户、设备、手机、分子或网页。
节点之间的边缘或关系示例包括友谊、网络连接、超链接、道路、路线、电线、电话、电子邮件、“点赞”、支付、交易、电话呼叫和社交网络消息。边缘可以用一个单向箭头来表示从一个节点到另一个节点的关系,比如,如果 Janet“点赞了”Jeanette 的一篇社交媒体文章。不过,它们也可以是无向的,比如,如果 Bob 是 Alice 的 Facebook 好友,那么 Alice 也是 Bob 的好友。
NetworkX 节点可以是任何可哈希的对象,它的值保持永久改变。这些值可以是文本字符串、图像、XML 对象、整个图形,也可以是自定义节点。基本软件包内提供了多个函数,可以借助这些函数以多种格式生成、读取和编写图形。
NetworkX 能够处理具有 1000 多万个节点和 1 亿多个边缘的巨大图形。核心软件包是符合 BSD 许可的免费软件,其中包括表示简单图形、有向图形以及采用并行边缘和自循环的图形等的数据结构。NetworkX 还具有一个庞大的开发者社区。开发者会维护核心软件包,并为第三方生态系统贡献力量。
NetworkX 具有以下主要用途:
- 研究社会、生物和基础设施网络结构和动态
- 标准化图形的编程环境
- 快速开发协同跨学科项目
- 与使用 C、C++ 和 FORTRAN 编写的算法和代码集成
- 处理大型非标准数据集
NetworkX 易于安装和使用,尤其是对于 Python 开发者而言。