栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

AttributeError:模块‘scipy.sparse‘没有属性‘coo

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AttributeError:模块‘scipy.sparse‘没有属性‘coo

食用指南:本文参考了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花了我昨晚一个晚上,外加今天一上午的时间,严重的延缓了我的编程进度.hhh
至于出现这个类型的问题,我大体我想到的思路有两个,
第一个思路:
就会找到对应的python版本,可以先试着玄学升级一下,不行的话汲,不行的就去找精确的匹配版本。如果别人已经试验过哪个版本可以对应了最好,不行话就老老实实去官网的文档找帮助的函数吧。
第二个思路:
就是换一个函数处理。但是需要找到对应的函数。最后实现想要实现的效果

总之: 本文试了网上所谓的对应版本不行,换了一个函数才行的。也许是函数更行了?没有深入研究


其他参考文献
  1. Plot NetworkX Graph with numpy array error

  2. AttributeError: module ‘scipy.sparse’ has no attribute ‘coo_array’

  3. attributeError:模块’scipy.sparse’没有属性’coo_array’

  4. 使用networkx画图时,报错:AttributeError: module ‘scipy.sparse’ has no attribute ‘coo_array’

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/947378.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号