实用工具#

辅助函数#

NetworkX 的杂项辅助函数。

这些函数不会导入到基础的 networkx 命名空间中,但可以通过以下方式访问,例如:

>>> import networkx
>>> networkx.utils.make_list_of_ints({1, 2, 3})
[1, 2, 3]
>>> networkx.utils.arbitrary_element({5, 1, 7})  
1

arbitrary_element(iterable)

返回 iterable 中的一个任意元素,但不将其移除。

flatten(obj[, result])

返回(可能嵌套的)可迭代对象的扁平化版本。

make_list_of_ints(sequence)

从整数序列返回整数列表。

dict_to_numpy_array(d[, mapping])

将字典的字典转换为 numpy 数组,可选择使用映射。

pairwise(iterable[, cyclic])

s -> (s0, s1), (s1, s2), (s2, s3), ...

groups(many_to_one)

将多对一映射转换为一对多映射。

create_random_state([random_state])

根据输入返回一个 numpy.random.RandomState 或 numpy.random.Generator 实例。

create_py_random_state([random_state])

根据输入返回一个 random.Random 实例。

nodes_equal(nodes1, nodes2)

检查节点是否相等。

edges_equal(edges1, edges2)

检查边是否相等。

graphs_equal(graph1, graph2)

检查图是否相等。

数据结构与算法#

并查集数据结构。

UnionFind.union(*objects)

找到包含这些对象的集合并将它们全部合并。

随机序列生成器#

用于生成随机数、随机序列和随机选择的实用工具。

powerlaw_sequence(n[, exponent, seed])

从幂律分布返回长度为 n 的样本序列。

cumulative_distribution(distribution)

从离散分布返回归一化累积分布。

discrete_sequence(n[, distribution, ...])

从给定离散分布或离散累积分布返回长度为 n 的样本序列。

zipf_rv(alpha[, xmin, seed])

返回从 Zipf 分布中选择的随机值。

random_weighted_sample(mapping, k[, seed])

从加权样本中返回 k 个不重复的项。

weighted_choice(mapping[, seed])

从加权样本中返回单个元素。

装饰器#

open_file(path_arg[, mode])

用于确保文件干净打开和关闭的装饰器。

not_implemented_for(*graph_types)

用于标记算法未实现的装饰器

nodes_or_number(which_args)

允许使用节点数量或节点容器作为参数的装饰器。

np_random_state(random_state_argument)

用于生成 numpy RandomState 或 Generator 实例的装饰器。

py_random_state(random_state_argument)

用于生成 random.Random 实例(或等效对象)的装饰器。

argmap(func, *args[, try_finally])

在调用函数之前将映射应用于参数的装饰器

Cuthill-Mckee 排序#

对图节点进行 Cuthill-McKee 排序以生成稀疏矩阵

cuthill_mckee_ordering(G[, heuristic])

生成图节点的排序(置换)以创建稀疏矩阵。

reverse_cuthill_mckee_ordering(G[, heuristic])

生成图节点的排序(置换)以创建稀疏矩阵。

映射队列#

具有可更新优先级的优先级队列类。

MappedQueue([data])

MappedQueue 类实现了具有移除和更新优先级功能的最小堆。