[英]Plot NetworkX Graph with numpy array error
我将邻接矩阵作为 numpy 数组,并希望将它作为使用 NetworkX 的简单无向图 plot,但我一直遇到此错误: AttributeError: module 'scipy.sparse' has no attribute 'coo_array'
我正在关注这个: Plot 来自邻接矩阵的 NetworkX Graph in CSV 文件特定的答案并且无法让它工作。 唯一的区别是我的邻接矩阵相当大,大约有 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.coo_array((d, (r, c)), shape=(nlen, nlen), dtype=dtype )。
您需要将“coo_array”切换为“coo_matrix”。
所以它应该看起来像: A = sp.sparse.coo_matrix((d, (r, c)), shape=(nlen, nlen), dtype=dtype)
这对我的项目来说足够好
我遇到了同样的问题,我用
pip install scipy==1.8.1
在 Windows 系统上,它工作。 我想这可能是因为以前版本的“scipy.sparse”没有“coo_array”。
我尝试了第一个答案中的方法,但它们不起作用。 我还尝试使用 conda 将 scipy 更新到 1.8.1 无济于事。
我也在 windows 10 中使用 vs 代码。我遇到了同样的问题。 然后我尝试分别升级 scipy 和网络,但它们对我不起作用。 然后我尝试使用以下代码升级两者。 那么这对我有用。
!pip install --upgrade scipy networkx
在cmd中,这段代码应该是这样的。 尝试以管理员身份打开。
pip install --upgrade scipy networkx
这些版本的 newtorkx 和 scipy 为我解决了错误
%pip install .networkx<2.7'
%pip install 'scipy>=1.8'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.