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.digraph_adjacency_matrix#
- digraph_adjacency_matrix(graph, /, weight_fn=None, default_weight=1.0, null_value=0.0, parallel_edge='sum')#
Return the adjacency matrix for a PyDiGraph object
In the case where there are multiple edges between nodes the value in the output matrix will be assigned based on a given parameter. Currently, the minimum, maximum, average, and default sum are supported.
- Parameters:
graph (PyDiGraph) – The DiGraph used to generate the adjacency matrix from
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 afloat
for edge object. Some simple examples are:dag_adjacency_matrix(dag, weight_fn: lambda x: 1)
to return a weight of 1 for all edges. Also:
dag_adjacency_matrix(dag, 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
.parallel_edge (String) –
- Optional argument that determines how the function handles parallel edges.
"min"
causes the value in the output matrix to be the minimum of the edges’ weights, and similar behavior can be expected for"max"
and"avg"
. The function defaults to"sum"
behavior, where the value in the output matrix is the sum of all parallel edge weights.
- return:
The adjacency matrix for the input directed graph as a numpy array
- rtype:
numpy.ndarray