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

ghhkc1vu  于 2023-01-15  发布在  其他
关注(0)|答案(6)|浏览(246)

我有我的邻接矩阵作为一个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

0md85ypi

0md85ypi1#

将networkx降级到2.6.3,它为我解决了这个问题。

iih3973s

iih3973s2#

同时升级scipynetworkx,对我很有效。

pip install --upgrade scipy networkx
nwlls2ji

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),数据类型=数据类型)
这对我的项目来说已经足够好了

ttp71kqs

ttp71kqs4#

我也在windows10中使用vs代码。我遇到了同样的问题。然后我试图分别升级scipy和networks,但它们对我不起作用。然后我试图使用以下代码升级两者。然后这对我起作用了。

!pip install --upgrade scipy networkx

在cmd中,这段代码应该是这样的。尝试以管理员身份打开。

pip install --upgrade scipy networkx
jv2fixgn

jv2fixgn5#

我遇到了同样的问题,我使用了

pip install scipy==1.8.1

我猜这可能是因为以前版本的“scipy.sparse”没有“coo_array”。
我尝试了第一个答案中的方法,但是它们不起作用,我还尝试使用conda将scipy更新到1.8.1,但没有效果。

rseugnpd

rseugnpd6#

newtorkx和scipy的这些版本为我解决了这个错误
%pip install 'networkx<2.7'
%pip install 'scipy>=1.8'

相关问题