我在把一个元组列表(graphLowCopy.edges得到的值就是一个元组列表即[(1,2),(1,3)]类似这样的)定义成numpy数组时,

eee = np.array(graphLowCopy.edges)

发生了以下的错误:

国内的很多回答都不靠谱,于是我到stack overflow上面搜索答案,有人提到:

 我想起来我之前使用

# 这一轮删除的节点的编号
nodesLow = list(graphLowSource.nodes)
nodesDelete = np.random.choice(nodesLow, trueSize, replace=False)

的时候也出现过这个问题,但是我加了个list()就没报错,于是我便把

eee = np.array(graphLowCopy.edges)

改成了

eee = np.array(list(graphLowCopy.edges))

就没报错了。

结论(只提供某种思路):

如果你用到numpy的时候出现类似我这样的问题,原因便是你使用numpy要操作的对象需要是list,但是你可能没注意到这个问题或是理所当然的认为你这个对象就是list,这就可能导致这个问题的出现。所以你需要将你使用numpy操作的对象强制性的转成list。就像

# 这一轮删除的节点的编号
nodesLow = graphLowSource.nodes
nodesDelete = np.random.choice(nodesLow, trueSize, replace=False)

改成

# 这一轮删除的节点的编号
nodesLow = list(graphLowSource.nodes)
nodesDelete = np.random.choice(nodesLow, trueSize, replace=False)

这样。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐