Skip to main content
`Ctrl`+`K`

# Utilities

## Helper Functions

Miscellaneous Helpers for NetworkX.

These are not imported into the base networkx namespace but can be accessed, for example, as

    >>> 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) | Returns an arbitrary element of `iterable` without removing it.
`flatten`(obj[, result]) | Return flattened version of (possibly nested) iterable object.
`make_list_of_ints`(sequence) | Return list of ints from sequence of integral numbers.
`dict_to_numpy_array`(d[, mapping]) | Convert a dictionary of dictionaries to a numpy array with optional mapping.
`pairwise`(iterable[, cyclic]) | s -> (s0, s1), (s1, s2), (s2, s3), ...
`groups`(many_to_one) | Converts a many-to-one mapping into a one-to-many mapping.
`create_random_state`([random_state]) | Returns a numpy.random.RandomState or numpy.random.Generator instance depending on input.
`create_py_random_state`([random_state]) | Returns a random.Random instance depending on input.
`nodes_equal`(nodes1, nodes2) | Check if nodes are equal.
`edges_equal`(edges1, edges2) | Check if edges are equal.
`graphs_equal`(graph1, graph2) | Check if graphs are equal.

## Data Structures and Algorithms

Union-find data structure.

`UnionFind.union`(*objects) | Find the sets containing the objects and merge them all.

## Random Sequence Generators

Utilities for generating random numbers, random sequences, and random selections.

`powerlaw_sequence`(n[, exponent, seed]) | Return sample sequence of length n from a power law distribution.
`cumulative_distribution`(distribution) | Returns normalized cumulative distribution from discrete distribution.
`discrete_sequence`(n[, distribution, ...]) | Return sample sequence of length n from a given discrete distribution or discrete cumulative distribution.
`zipf_rv`(alpha[, xmin, seed]) | Returns a random value chosen from the Zipf distribution.
`random_weighted_sample`(mapping, k[, seed]) | Returns k items without replacement from a weighted sample.
`weighted_choice`(mapping[, seed]) | Returns a single element from a weighted sample.

## Decorators

`open_file`(path_arg[, mode]) | Decorator to ensure clean opening and closing of files.
`not_implemented_for`(*graph_types) | Decorator to mark algorithms as not implemented
`nodes_or_number`(which_args) | Decorator to allow number of nodes or container of nodes.
`np_random_state`(random_state_argument) | Decorator to generate a numpy RandomState or Generator instance.
`py_random_state`(random_state_argument) | Decorator to generate a random.Random instance (or equiv).
`argmap`(func, *args[, try_finally]) | A decorator to apply a map to arguments before calling the function

## Cuthill-Mckee Ordering

Cuthill-McKee ordering of graph nodes to produce sparse matrices

`cuthill_mckee_ordering`(G[, heuristic]) | Generate an ordering (permutation) of the graph nodes to make a sparse matrix.
`reverse_cuthill_mckee_ordering`(G[, heuristic]) | Generate an ordering (permutation) of the graph nodes to make a sparse matrix.

## Mapped Queue

Priority queue class with updatable priorities.

`MappedQueue`([data]) | The MappedQueue class implements a min-heap with removal and update-priority.