网络X 2.4#

上映日期:2019年10月16日

支持Python3.5、3.6、3.7和3.8。这是支持Python3.5的最后一个版本。

NetworkX是一个用于创建、操作和研究复杂网络的结构、动力学和功能的Python包。

欲了解更多信息,请访问我们的 website 还有我们的 gallery of examples 。请将意见和问题发送到 networkx-discuss mailing list

集锦#

这个版本是67个贡献者6个月的工作和200多个提交的结果。亮点包括:

  • 从1.x中删除不推荐使用的代码

  • 支持Python3.8

  • 切换到pytest进行测试

  • 支持Python3.5的最新版本

新功能:

  • 重心函数

  • bethe-hessian矩阵函数

  • 欧拉路径方法

  • 群体中心性测度

  • 子图单态

  • k-桁架算法

  • 洋葱腐烂

  • 阻力距离

  • 小行星三胞胎

  • 非随机性测度

  • 线性刨削

  • 最小权二部匹配

  • 增量贴近度中心度

  • ismags子图同构算法

  • 创建图形的弦图

新发电机

  • 二叉树生成器

  • 定向关节度发生器

  • 随机互联网作为图形生成器

新布局

  • 螺旋节点布局例程

  • 支持三维布局

改进#

  • 允许使用Floyd Warshall方法的平均最短路径

  • 改进gml、gexf、graphml的读写

  • 允许字符串或json对象作为jit图的输入

  • 尝试允许numpy.array输入代替更多位置的列表

  • 更快的强连接组件

  • 更快的Floyd Warshall优化

  • 更快的全球效率

  • 快速传递闭包

  • FuxNo.No.1;子集;Loopo Topo排序;A*;反相Gomory Hu图;异步标签传播;EDGELIST读取;LabelSype方法;LabelSype;部分重复;Shell 1层节点的布局;

  • 文档改进和修复

API更改#

一个实用函数是list,它变成了bunch,现在测试int(item)=item,而不是 isinstance(_, int)这允许值为整数的浮点数。

添加实用程序make_list_of_int将整数值容器转换为整数列表

贬抑#

删除的函数(在NetworkX 2.1中标记为已弃用):

  • attracting_component_subgraphs

  • connected_component_subgraphs

  • weakly_connected_component_subgraphs

  • strongly_connected_component_subgraphs

  • biconnected_component_subgraphs

  • 有关如何获取子图的组件函数,请参见文档。

已删除图形对象方法(标记为已弃用2.1)

  • G.add_path

  • G.add_cycle

  • G.add_star

  • G.nodes_with_selfloops

  • G.number_of_selfloops

  • G.selfloop_edges

  • 这些现在是networkx函数,例如nx.add_star(g,5)

  • G.node-->使用G.nodes

  • g.fresh_copy-->使用 G.__class__

删除graphview函数的旧名称。

  • ReverseView

  • SubGraph

  • SubMultiGraph

  • SubMultiDiGraph

  • SubDiGraph

  • GraphView

  • DiGraphView

  • MultiGraphView

  • MultiDiGraphView

  • MultiReverseView

  • 使用反向视图、子图视图和通用图视图。

合并的请购单#

总共提交了205项更改。

  • 凹凸释放版本

  • 算法/遍历/edgebfs名称修复(3397)

  • 添加请参见链接(3403)

  • 添加harary图形生成器的引用(3407)

  • 输入错误:交换源和目标(3413)

  • 用固定节点修复spring_布局错误(3415)

  • 将lfr_u基准移动到生成器(3411)

  • 添加重心算法(2939)

  • 加上bethe-hessian矩阵(3401)

  • 二项式树生成器(3409)

  • 修复边颜色与节点颜色和描述不一致的问题。(3395)

  • 为组中心性度量添加模块(3421)

  • 改进边缘列表,另见(3423)

  • 排版修复(3424)

  • 添加有关ADAMIC_adar_index(3427)的自循环的文档警告

  • 修复UnionFind集提取(3224)

  • 将所需参数添加到 write_graphml 示例(3429)

  • 固定中间性子集(3425)

  • 添加两个版本的simrank similarity(3222)

  • 固定排版

  • 合并来自Nandahkrishna的拉取请求3436/修复中心性子集测试之间的输入错误

  • 重新订购并完成文档(3438)

  • 向依赖于拓扑排序的函数添加topo_order参数(3447)

  • 实现子图单态(3435)

  • 随机度序列图docstring检验中的种子集(3451)

  • 将cb.iterable替换为np.iterable(3458)

  • 不要删除其他pyplot轴的刻度(3476)

  • 修正“G>图形建模语言”中的输入错误(3468)

  • 朴素k-truss算法的实现。(3462)

  • 添加洋葱分解(3461)

  • 新功能-电阻距离(3385)

  • 中间性没有多重图(3454)

  • 车轮仅限Python 3

  • 用python 3.7修复不推荐警告(3487)

  • 修复dfs预订单节点docstring中的“edges”而不是“nodes”(3484)

  • 增加了群体亲密度和群体集中度(3437)

  • 修正了错误的文档(3495)

  • 修复词典编纂中的第3493个问题——(3494)

  • 自由图形识别(3377)

  • 更新introduction.rst(3504)

  • 全连接操作和齿槽图生成器(3503)

  • 优化强连通分量算法。(3516)

  • 为图添加非随机性度量(3515)

  • 增加了非随机性措施的保护措施(输入图G)(3526)

  • 优化强连接组件算法-取2(3519)

  • 在issue 3524(3529)中找到bug的小修复程序

  • 恢复检查pypy3(3514)

  • 线性普鲁弗编码(3535)

  • 修正逆线图。(3507)

  • 修正返回错误的解决方案(3508)

  • 实现二部图的最小权全匹配(3527)

  • 获取1054(3353)的弦图

  • dags的快速传递闭包计算(3445)

  • 在write_graphml_lxml(3536)中正确写入混合类型属性

  • 修复了逆线图()的一些边情况。(3538)

  • 在to-numpy数组中明确声明了i.j约定

  • 增量贴近度中心度(无向、无权图)(3444)

  • ismags子图同构算法的实现(3312)

  • 修复networkx.algorithms.community.label_propagation.asyn_lpa_communities(3545)中的错误

  • 导出到GML时,将非32位数字作为字符串写入。(3540)

  • 尝试修复()

  • 添加有向关节度图生成器(3551)

  • 打字错误(3557)

  • 为二分算法参考(3555)修复一些文档问题

  • 相关函数中的adj mat i/o中的i,j约定

  • 来自malch2/doc/update的合并请求3542

  • 向Travis添加3.8-dev

  • 修复py3.8的dict迭代

  • 暂时忽略其他失败

  • 修复获取边缘数据(3564)的docstring错误

  • 修正错误标题(3566)

  • 修复doctring中的输入错误(3568)

  • 修复并改进graph.py(3569)中的docstrings

  • 改进的图类选择表(3570)

  • 为图形绘图添加螺旋布局(3534)

  • #3575三维布局的返回坐标(3576)

  • 在美国瓦茨Strogatz图形发生器内的句柄k==n(3579)

  • Floyd Warshall优化(3400)

  • 使用Sphinx2.2

  • 添加缺少的小行星文档链接

  • 修复Sphinx警告

  • 修复sphinx latexpdf生成

  • 更新的参与者列表(3592)

  • 从列表到集合的prim(3512)

  • 修复问题3491(3588)

  • 使travis在python 3.8上失败

  • 修复test_gexf以处理xml属性的默认序列化顺序

  • 删除PY2所需的未来导入

  • 将Internet添加为图形生成器(3574)

  • 从outedgedataview中移除循环引用(3598)

  • 添加最小源边距和目标边距以绘制网络边。(3390)

  • 固定到_定向函数(3599)

  • 修复了3573:GEXF输出问题(3606)

  • 提高全球效率的尝试(3604)

  • BugFix:在读取标签和ID值时增加了灵活性(3603)

  • 将floyd warshall方法添加到平均最短路径长度(3267)

  • 替换为==和较小的pycodesyle修复(3608)

  • 修复许多基于文档的问题(3609)

  • 解决许多文档问题(3611)

  • fixes 3187 transitive_closure现在在存在循环时返回self循环(3613)

  • 添加对初始化pagerank scipy(3183)的支持

  • 添加gomory hu算法修复的最后7行3293(3614)

  • 实现的Euler路径函数(3399)

  • 在label_propagation.py(3619)中固定边的方向

  • 移除未使用的随机模块导入(3620)

  • 修复部分重复图中的操作顺序(3626)

  • 在Shell_u布局中,使具有1个节点的壳远离原点(3629)

  • 允许jit_graph读取json字符串或json对象(3628)

  • 修正代码文件中的输入错误(3621)

  • 贪婪着色的pycodestyle和更新文档。py+测试(3631)

  • 添加版本徽章

  • 从自述文件加载长描述

  • 添加缺少的代码块(3630)

  • 更改为“列出”项以生成“列出”项(3617)

  • 当没有列匹配请求时(3634),从“熊猫”edgelist处理edgeattr in

  • 起草2.4版的发行说明

  • 将注释从dev移到v2.4文件名。

  • 使用最近的pypy

  • 在MacOS上测试PY 3.8

  • 在转换gexf中的inf/nan之前添加attr类型的检查(3636)

  • 修复sphinx错误并在dijkstra路径/长度(3638)的文档中添加到单个源的链接

  • 文档子图视图(3627)

  • 第一轮pytest修复

  • 使用类方法进行类设置/拆卸

  • 让CIS使用Pytest

  • 使用类方法进行类设置/拆卸(续)

  • 少做测试(直到我们开始工作)

  • 替换测试文件中networkx import*中的惯用语

  • 修复断言函数重写

  • 链路预测中的固定静态方法

  • 部分修复v2userfunc测试

  • 固定图/有向图测试

  • 修复多重图检查

  • 修正多重图检查

  • 修复测试功能检查

  • 固定距离测量测试

  • 修复装饰程序测试

  • 在测试中修复一些提升

  • 修正集团测试

  • 修复yaml测试

  • 在报表视图中修复测试

  • 修复vf2测试

  • 修正MST测试

  • 修复gdal测试

  • 将nose.tools.assert函数转换为assert

  • 删除未使用的导入

  • 修正一些警告

  • 更新测试说明

  • 可重新启用所有测试平台

  • 修理一些 __init__ 警告

  • 替换test_coloring.py中的鼻子屈服试验

  • 添加测试、覆盖率和开发环境信息

  • 试试Pytestimportorskip

  • pytest.importorskip上的另一对变体

  • 修复错误并重试

  • 删除不推荐使用的弱连接子图

  • 在算法/测试中替换assert_几乎等于并提升

  • 在使用旧的几乎相等的测试上设置places=0

  • 更新nx.test()

  • 让pytest运行doctests/而不是sphinx

  • revert“删除已弃用的弱连接组件子图”

  • 删除使用不推荐的函数的警告

  • 删除不推荐的函数和方法。添加到发行说明。

  • 修正子图视图测试

  • 删除已弃用视图的测试并修复已弃用g.node的使用

  • 跟踪不推荐的函数的使用

  • 修复不推荐使用的add_path/star/cycle

  • 减少不推荐的函数的警告

  • 谐波测试中的裙座问题

  • 通过删除不推荐的函数来减少警告的数量

  • 转换矩阵演示一种让医生工作的方法

  • 从示例中删除不推荐的

  • 转换_矩阵和其他依赖于np.矩阵的更改

  • 清除doctest不推荐使用的代码

  • 更多医生的更正

  • 修复示例

  • 从发电机上拆下机头

  • 把鼻子从尿道上取下来

  • 把鼻子从课堂上移开

  • 用pytest.raises替换nose.assert_raises

  • 用pytest.raises上下文管理器替换nose.raises

  • 替换 eq_ok_ 带断言

  • 对doctest使用pytest

  • 在发行说明中突出显示切换到pytest

  • 去除 from nose.tools import *

  • 拆下鼻子。工具。SkipTest

  • 完成到pytest的转换

  • 来自Stefanv/Pytest端口的合并拉取请求3639

  • 用appveyor测试python 3.8

  • 来自jarrodmillman/windows-py3.8的合并请求3648

  • 删除不推荐使用的弱连接子图

  • 更新发行说明

  • 更新自述文件

  • 宣布支持Python3.8

  • 指定2.4RC1发布

  • 凹凸释放版本

  • 删除剩余的SkipTest

  • 修复文档注释(3644)(3645)

  • 在Appveyor上测试PY 3.8.0

  • 加速应用程序

  • 清除Travis配置

  • 改进CI缓存

  • 更新travis上的py 3.8

  • 来自Jarrodmillman/Speedup Appveyor的合并拉取请求3652

  • 完成发行说明

它包含以下5个合并:

  • 修正中间性中心性子集测试中的输入错误(3436)

  • 在to-numpy数组(3542)中明确声明了i.j约定

  • Pytest端口(3639)

  • 使用appveyor测试python 3.8(3648)

  • 清理和加速CI(3652)

贡献者#

  • 阿迪卡里

  • 安托万·阿拉德

  • 安托万

  • 萨利姆·贝尔哈德德

  • 卢卡巴尔德斯

  • 塔玛斯比泰

  • 托拜厄斯布拉斯

  • 马来亚朱塔尼

  • 彼得·考克

  • 阿尔莫格·科亨

  • 迪奥戈·克鲁兹

  • 马丁·达姆恩策尔

  • 伊兰厄内斯特

  • 雅各布·乔娜·法伦坎普

  • 迈克尔·费德尔

  • 安迪·加菲尔德

  • 拉米罗·G·梅兹

  • 哈肯

  • 亚历克斯·亨利

  • 斯特芬·赫希曼

  • 马丁·詹姆斯·麦克休三世

  • 雅各布

  • 瑟伦·福格勒德·约根森

  • 奥默卡茨

  • 朱利安克劳斯

  • 马特杰克莱曼

  • 南达克里希纳

  • 彼得C克朗

  • 安东尼·拉巴拉

  • 安东洛德

  • MCER4294967296型

  • 埃里克马

  • 菲门策

  • 埃尔万勒梅勒

  • 亚历山大·梅茨

  • 贾罗尔米尔曼

  • Subhendu Ranajn Mishra酒店

  • 杰米·莫顿

  • 詹姆斯·迈特

  • 凯文·纽曼

  • 亚伦欧普尔

  • 阿迪亚·帕尔

  • 帕斯卡尔奥尔蒂斯

  • 彼得

  • 何塞·皮尼拉

  • 亚历克西奥波利佐斯

  • 迈克尔·雷卡钦斯

  • 埃弗拉姆罗德里格斯

  • 亚当·罗森塔尔

  • 丹舒尔特

  • 威廉·施瓦兹

  • 魏圣思

  • 卡尼什克坦蒂亚

  • 伊万·瑟姆

  • 乔治·瓦尔卡纳斯

  • 范德华

  • 吴希萱

  • 吴浩辰

  • 徐向玉

  • 让·加布里埃尔·杨

  • Bkief公司

  • 丹尼尔卡尔

  • 米歇尔B7398

  • 米凯德尔塔利马

  • 南达克里希纳

  • 斯基乌

  • 茶碱