biadjacency_matrix

biadjacency_matrix(G, row_order, column_order=None, dtype=None, weight='weight', format='csr')[source]

Returns the biadjacency matrix of the bipartite graph G.

Let G = (U, V, E) be a bipartite graph with node sets U = u_{1},...,u_{r} and V = v_{1},...,v_{s}. The biadjacency matrix [1] is the r x s matrix B in which b_{i,j} = 1 if, and only if, (u_i, v_j) in E. If the parameter weight is not None and matches the name of an edge attribute, its value is used instead of 1.

Parameters
Ggraph

A NetworkX graph

row_orderlist of nodes

The rows of the matrix are ordered according to the list of nodes.

column_orderlist, optional

The columns of the matrix are ordered according to the list of nodes. If column_order is None, then the ordering of columns is arbitrary.

dtypeNumPy data-type, optional

A valid NumPy dtype used to initialize the array. If None, then the NumPy default is used.

weightstring or None, optional (default=’weight’)

The edge data key used to provide each value in the matrix. If None, then each edge has weight 1.

formatstr in {‘bsr’, ‘csr’, ‘csc’, ‘coo’, ‘lil’, ‘dia’, ‘dok’}

The type of the matrix to be returned (default ‘csr’). For some algorithms different implementations of sparse matrices can perform better. See [2] for details.

Returns
MSciPy sparse matrix

Biadjacency matrix representation of the bipartite graph G.

See also

adjacency_matrix
from_biadjacency_matrix

Notes

No attempt is made to check that the input graph is bipartite.

For directed bipartite graphs only successors are considered as neighbors. To obtain an adjacency matrix with ones (or weight values) for both predecessors and successors you have to generate two biadjacency matrices where the rows of one of them are the columns of the other, and then add one to the transpose of the other.

References

1

https://en.wikipedia.org/wiki/Adjacency_matrix#Adjacency_matrix_of_a_bipartite_graph

2

Scipy Dev. References, “Sparse Matrices”, https://docs.scipy.org/doc/scipy/reference/sparse.html