我有我的邻接矩阵作为一个numpy数组,并希望绘制它作为一个简单的无向图使用NetworkX,但我不断遇到这个错误:AttributeError: module 'scipy.sparse' has no attribute 'coo_array'
我是这么想的Plot NetworkX Graph from Adjacency Matrix in CSV file特定的答案,无法使其工作。唯一的区别是,我的邻接矩阵相当大,大约有30000列
这是我的图形绘制代码:
G = nx.from_numpy_matrix(np.matrix(adj_mtx_np), create_using=nx.DiGraph)
nx.draw(G)
plt.show()
我的脚本版本是1.8.0
6条答案
按热度按时间0md85ypi1#
将networkx降级到2.6.3,它为我解决了这个问题。
iih3973s2#
同时升级
scipy
和networkx
,对我很有效。nwlls2ji3#
我查看了生成该错误的scipy文件(“convert_matrix.py”)第921行:A = sp.稀疏.coo_数组((d,(r,c)),形状=(nlen,nlen),数据类型=数据类型).
您需要将“coo_array”切换为“coo_matrix”。
因此,它应该看起来像:A = sp.稀疏.coo_矩阵((d,(r,c)),形状=(nlen,nlen),数据类型=数据类型)
这对我的项目来说已经足够好了
ttp71kqs4#
我也在windows10中使用vs代码。我遇到了同样的问题。然后我试图分别升级scipy和networks,但它们对我不起作用。然后我试图使用以下代码升级两者。然后这对我起作用了。
在cmd中,这段代码应该是这样的。尝试以管理员身份打开。
jv2fixgn5#
我遇到了同样的问题,我使用了
我猜这可能是因为以前版本的“scipy.sparse”没有“coo_array”。
我尝试了第一个答案中的方法,但是它们不起作用,我还尝试使用conda将scipy更新到1.8.1,但没有效果。
rseugnpd6#
newtorkx和scipy的这些版本为我解决了这个错误
%pip install 'networkx<2.7'
%pip install 'scipy>=1.8'