adjacency_matrix#

adjacency_matrix(G, nodelist=None, dtype=None, weight='weight')[source]#

返回图 G 的邻接矩阵。

Parameters:
G

一个 NetworkX 图

nodelist列表, 可选

行和列按照 nodelist 中的节点顺序排列。 如果 nodelist 为 None,则顺序由 G.nodes() 生成。

dtypeNumPy 数据类型, 可选

数组所需的数据类型。 如果为 None,则使用 NumPy 默认值。

weight字符串或 None, 可选 (默认=’weight’)

用于在矩阵中提供每个值的边数据键。 如果为 None,则每条边的权重为 1。

Returns:
ASciPy 稀疏数组

G 的邻接矩阵表示。

See also

to_numpy_array
to_scipy_sparse_array
to_dict_of_dicts
adjacency_spectrum

Notes

对于有向图,条目 i,j 对应于从 i 到 j 的边。

如果你想使用纯 Python 的邻接矩阵表示,可以尝试 networkx.convert.to_dict_of_dicts,它将返回一个 字典-字典格式,可以作为稀疏矩阵访问。

对于带有平行边的 MultiGraph/MultiDiGraph,权重会被累加。 参见 to_numpy_array 获取其他选项。

图中自环边的约定是将其对角矩阵条目值赋给边权重属性 (如果没有边权重属性,则为数字 1)。如果希望使用 双倍边权重的替代约定,可以按以下方式修改生成的 SciPy 稀疏数组:

>>> G = nx.Graph([(1, 1)])
>>> A = nx.adjacency_matrix(G)
>>> print(A.todense())
[[1]]
>>> A.setdiag(A.diagonal() * 2)
>>> print(A.todense())
[[2]]

Additional backends implement this function

graphblas : OpenMP-enabled sparse linear algebra backend.