NetworkX构建稀疏图时是否会自动存储完整邻接矩阵?
NetworkX 稀疏图存储机制说明
- 用邻接字典实例化NetworkX图时,它不会自动创建并存储完整邻接矩阵。核心存储会沿用你传入的稀疏邻接结构,完全不用承担大规模稠密矩阵的实例化成本,这也是NetworkX适配稀疏图场景的设计之一。
- 只有当你显式调用生成邻接矩阵的方法(比如
nx.to_numpy_array()、nx.to_scipy_sparse_array()),或者调用依赖邻接矩阵的算法/方法时,NetworkX才会临时生成对应的矩阵(支持稀疏或稠密形式,由调用的方法决定),生成的矩阵不会被默认持久化存储,除非你主动保存这个矩阵对象。
举个实际使用的例子:
import networkx as nx # 基于邻接字典创建稀疏图 adj_dict = {0: [1, 3], 1: [0, 2], 2: [1], 3: [0]} G = nx.Graph(adj_dict) # 此时G内部仅维护邻接关系,无完整邻接矩阵 # 显式调用方法才会生成邻接矩阵 dense_adj_matrix = nx.to_numpy_array(G) sparse_adj_matrix = nx.to_scipy_sparse_array(G)
内容的提问来源于stack exchange,提问作者zjs
相关产品推荐
相关产品推荐

