NetworkX 1.6#

发布日期:2011年11月20日

亮点#

新增功能用于查找关节点,生成随机的二部图,构建邻接矩阵表示,形成图的乘积,计算同配性系数,测量子图中心性和可通达性,查找k-团社区,并编写JSON格式输出。

新增示例用于使用D3 JavaScript库绘图,以及使用Cuthill-McKee算法对矩阵进行排序。

更加内存高效的电流介数实现以及新的电流介数和最短路径介数的近似算法。

简化了对使用权重/成本/值的算法的“权重”属性的处理。

更新了所有代码,以便与PyPy Python实现http://pypy.org一起使用,这将在许多算法上提供更快的性能。

图类#

图类(Graph,DiGraph,MultiGraph,MultiDiGraph)中的degree*方法现在接受一个可选的weight=关键字,允许使用任意(数值)边属性计算加权度。设置weight=None等同于先前的weighted=False。

加权图算法#

许多“加权”图算法现在接受可选参数,用于指定应该使用哪个边属性作为权重(默认为’weight’)(票证https://networkx.lanl.gov/trac/ticket/573)

在某些情况下,参数名称从weighted更改为weight。以下是如何在算法中指定应该使用哪个边属性:

  • 使用weight=None来平等考虑所有权重(无权重情况)

  • 使用weight=’weight’来使用’weight’边属性

  • 使用weight=’other’来使用’other’边属性

受影响的算法有:

to_scipy_sparse_matrix, clustering, average_clustering, bipartite.degree, spectral_layout, neighbor_degree, is_isomorphic, betweenness_centrality, betweenness_centrality_subset, vitality, load_centrality, mincost, shortest_path, shortest_path_length, average_shortest_path_length

同构#

节点和边属性现在更容易通过’node_match’和’edge_match’参数合并到同构检查中。作为这一变化的一部分,以下类被移除:

WeightedGraphMatcher WeightedDiGraphMatcher WeightedMultiGraphMatcher WeightedMultiDiGraphMatcher

‘is_isomorphic’的函数签名现在简单地是:

is_isomorphic(g1, g2, node_match=None, edge_match=None)

查看其文档字符串以获取更多详细信息。为了帮助创建’node_match’和’edge_match’函数,鼓励用户使用:

categorical_node_match categorical_edge_match categorical_multiedge_match numerical_node_match numerical_edge_match numerical_multiedge_match generic_node_match generic_edge_match generic_multiedge_match

这些函数构建可以传递给’is_isomorphic’的函数。 最后,请注意上述函数未被导入顶层命名空间,应从’networkx.algorithms.isomorphism’中访问。在整个文档中将重复出现的一个有用的导入语句是:

import networkx.algorithms.isomorphism as iso

其他#

  • attracting_components

    返回的是一个列表的列表,而不是元组的列表。

  • condensation

    现在,凝结算法需要第二个参数(scc),并返回一个节点标记为整数而不是节点元组的图。

  • 度连接性

    average_in_degree_connectivity 和 average_out_degree_connectivity 已被替换为

    average_degree_connectivity(G, source=’in’, target=’in’)

    average_degree_connectivity(G, source=’out’, target=’out’)

  • 邻居度

    average_neighbor_in_degree 和 average_neighbor_out_degree 已被替换为

    average_neighbor_degree(G, source=’in’, target=’in’)

    average_neighbor_degree(G, source=’out’, target=’out’)