使用numpy数组错误绘制NetworkX图形



我的邻接矩阵是一个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,它为我解决了这个问题。

同时升级scipynetworkx,这对我很有用。

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'

最新更新