我的邻接矩阵是一个numpy数组,我想使用NetworkX将其绘制为一个简单的无向图,但我一直遇到这个错误:AttributeError: module 'scipy.sparse' has no attribute 'coo_array'
我遵循这一点:从CSV文件中的邻接矩阵绘制NetworkX图的特定答案,但无法使其工作。唯一的区别是,我的邻接矩阵相当大,大约有30000列
这是我的绘图代码:
G = nx.from_numpy_matrix(np.matrix(adj_mtx_np), create_using=nx.DiGraph)
nx.draw(G)
plt.show()
我的scipy版本是1.8.0
将networkx降级到2.6.3,它为我解决了这个问题。
同时升级scipy
和networkx
,这对我很有用。
pip install --upgrade scipy networkx
我查看了生成错误的scipy文件("convert_matrix.py"(第921行:A=sp.sparse.co_array((d,(r,c((,shape=(nlen,nlen(,dtype=dtype(。
您需要切换";coo_array";至";coo_matrix";。
所以它应该看起来像:A=sp.sparse.co_matrix((d,(r,c((,shape=(nlen,nlen(,dtype=dtype(
这对我的项目来说已经足够好了
我还在windows 10中使用vs代码。我也有同样的问题。然后我尝试分别升级scipy和networks,但它们对我不起作用。然后我尝试使用以下代码同时升级。那对我来说就行了。
!pip install --upgrade scipy networkx
在cmd中,这个代码应该是这样的。尝试以管理员身份打开。
pip install --upgrade scipy networkx
我遇到了同样的问题,我使用了
pip install scipy==1.8.1
在Windows系统上,它成功了!我想这可能是因为以前版本的"scipy.s稀疏"没有"coo_array"。
我尝试了第一个答案中的方法,但都不起作用。我还尝试使用conda将scipy更新到1.8.1,但没有成功。
这些版本的newtorkx和scipy为我解决了的错误
%pip install 'networkx<2.7'
%pip install 'scipy>=1.8'