You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetworkX模块报错:不存在from_scipy_sparse_matrix属性

问题解决:AttributeError: module 'networkx' has no attribute 'from_scipy_sparse_matrix'

错误原因

NetworkX在2.4版本之后移除了from_scipy_sparse_matrix函数,该功能被重命名为from_scipy_sparse_array,原函数仅作为兼容项保留在nx.convert_matrix子模块中。你的代码调用了已被废弃/移除的顶层函数,因此触发属性错误。

解决方案

有两种可行的修改方式,推荐使用第一种适配新版本的写法:

方式1:使用新版本API(推荐)

将draw_graph函数中的nx.from_scipy_sparse_matrix(A)替换为nx.from_scipy_sparse_array(A):

修改后的核心代码片段:

def draw_graph(A, m=28, ax=None, spring_layout=False, size_factor=10):
    '''根据邻接矩阵(A)绘制图,
    可选择使用spring_layout布局。
    '''
    assert m**2 == A.shape[0] == A.shape[1]
    # 创建nx.Graph对象 - 使用新版本API
    G = nx.from_scipy_sparse_array(A)
    print('Number of nodes: %d; Number of edges: %d' % \
          (G.number_of_nodes(), G.number_of_edges()))
    # 后续代码保持不变...

方式2:兼容旧版本(不推荐)

若需兼容NetworkX 2.4之前的版本,可调用子模块中的兼容函数:

G = nx.convert_matrix.from_scipy_sparse_matrix(A)

额外注意事项

  • 建议将NetworkX升级到2.6及以上版本(from_scipy_sparse_array在2.6版本正式成为官方推荐API)
  • 确保SciPy版本与NetworkX版本匹配,避免稀疏矩阵格式不兼容问题

内容的提问来源于stack exchange,提问作者SwDL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:35:33