NetworkX模块报错AttributeError:不存在from_numpy_matrix属性的原因咨询
问题:共现数据框转NetworkX图时出现AttributeError错误
当用共现数据框coocc执行以下代码时,报错「AttributeError: module 'networkx' has no attribute 'from_numpy_matrix'」,代码如下:
import numpy as np import networkx as nx import matplotlib A=np.matrix(coocc) G=nx.from_numpy_matrix(A)
原因及解决办法
- 版本兼容性问题:NetworkX在2.6版本之后移除了
from_numpy_matrix函数,这个功能被整合到了from_numpy_array里,后者同时支持numpy数组和矩阵类型的输入。 - 代码修正方案:
- 把
nx.from_numpy_matrix(A)替换成nx.from_numpy_array(A); - 另外建议将
np.matrix(coocc)改为np.array(coocc)——因为numpy的matrix类已经被标记为弃用,后续版本会彻底移除,用array更稳妥。
- 把
修正后的代码:
import numpy as np import networkx as nx import matplotlib # 用np.array替代已弃用的np.matrix A = np.array(coocc) G = nx.from_numpy_array(A)
内容的提问来源于stack exchange,提问作者Pranab
相关产品推荐
相关产品推荐

