AttributeError:模块‘scipy.sparse‘没有属性‘coo_array‘ (module ‘scipy.sparse‘ has no attribute ‘coo_array‘)

食用指南:本文参考了2020-6-3前的国内外几乎所有论坛的相关bug解决方案

一、bug描述🐛
在做图论的建模的过程中,须要通过无向图判断图的连通性,于是我在参考这篇参考python将列表转换为邻接矩阵文章,程中在jupyerlab中使用用了文中的代码代码片段
#将图转换为邻接矩阵
A=np.array(nx.adjacency_matrix(G).todense())

出现了如下报错 从图中的关键报错信息
可以得知scipy.sparse的函数下面没有coo_array属性造成的,这是由于scipy在更新的过程,优化了一些函数的接口,使用bing浏览器搜索国内各大网站后无果后,只能跑去Goole上搜了一下,国外对这个bug讨论的比较多,主要是版本的对应问题.

二、解决方案✅
1. 确保版本对应

截图参考来源:须要科学上网
然后卸载掉现有的模块,安装新的scipy还有networkx
#卸载模块
pip uninstall scipy
pip uninstall networkx
#使用阿里云镜像加速安装
pip install -i http://mirrors.aliyun.com/pypi/simple scipy==1.8 –trusted-host mirrors.aliyun.com
pip install -i http://mirrors.aliyun.com/pypi/simple networkx==2.7 –trusted-host mirrors.aliyun.com

我已开始使用的python版本是使用pycharm中的conda创建的3.8 因为一开始使用的时候,搜索的资料是,networkx最新的模块最高支持py3.8 我的numpy 版本为 1.20.3,最后第一种方案我仍然无法运行这个这个函数。下面换了他一个函数才得以解决。
2.更换函数
使用下面函数,同样可以实现,将图转换为邻接矩阵.
nx.to_numpy_matrix(G)

参考来源:

三、其他碎碎念🤣
这个bug花了我昨晚(2022-6-2)一个晚上,外加今天一上午的时间,严重的延缓了我的编程进度.hhh 至于出现这个类型的问题,我大体我想到的思路有两个, 第一个思路: 可以先试着玄学升级一下模块的版本。 不行的话,就去找网友试验可行或官网指定的匹配版本。 如果还没有,就参考第二个思路,老老实实去官网的文档找帮助的函数吧。 第二个思路: 换一个函数处理。需要找到对应的函数。实现想要实现的效果 总之: 本文试了网上所谓的对应版本不行,换了一个函数才行的。也许是函数更行了?没有深入研究

其他参考文献😎
Plot NetworkX Graph with numpy array error AttributeError: module ‘scipy.sparse’ has no attribute ‘coo_array’ attributeError:模块’scipy.sparse’没有属性’coo_array’ 使用networkx画图时,报错:AttributeError: module ‘scipy.sparse’ has no attribute ‘coo_array’来源:_Jesse_

物联沃分享整理
物联沃-IOTWORD物联网 » AttributeError:模块‘scipy.sparse‘没有属性‘coo_array‘ (module ‘scipy.sparse‘ has no attribute ‘coo_array‘)

发表评论