Note

This is the documentation for the current state of the development branch of rustworkx. The documentation or APIs here can change prior to being released.

rustworkx.adjacency_matrix

adjacency_matrix(graph, weight_fn=None, default_weight=1.0, null_value=0.0, node_list=None)[source]

Return the adjacency matrix for a graph object

In the case where there are multiple edges between nodes the value in the output matrix will be the sum of the edges’ weights.

Parameters:
  • graph – The graph used to generate the adjacency matrix from. Can either be a PyGraph or PyDiGraph

  • weight_fn (callable) –

    A callable object (function, lambda, etc) which will be passed the edge object and expected to return a float. This tells rustworkx/rust how to extract a numerical weight as a float for edge object. Some simple examples are:

    adjacency_matrix(graph, weight_fn: lambda x: 1)
    

    to return a weight of 1 for all edges. Also:

    adjacency_matrix(graph, weight_fn: lambda x: float(x))
    

    to cast the edge object as a float as the weight. If this is not specified a default value (either default_weight or 1) will be used for all edges.

  • default_weight (float) – If weight_fn is not used this can be optionally used to specify a default weight to use for all edges.

  • null_value (float) – An optional float that will treated as a null value. This is the default value in the output matrix and it is used to indicate the absence of an edge between 2 nodes. By default this is 0.0.

  • node_list (list) –

    Optional list of node indices used to determine the

    row and column order of the output matrix. If fewer than all graph nodes are provided, only edges between listed nodes are included.

    return:

    The adjacency matrix for the input dag as a numpy array

    rtype:

    numpy.ndarray