python(numpy)报错:TypeError: cannot unpack non-iterable int object
我在把一个元组列表(graphLowCopy.edges得到的值就是一个元组列表即[(1,2),(1,3)]类似这样的)定义成numpy数组时,eee = np.array(graphLowCopy.edges)发生了以下的错误:国内的很多回答都不靠谱,于是我到stack overflow上面搜索答案,有人提到:我想起来我之前使用# 这一轮删除的节点的编号nodesLow = list(graph
·
我在把一个元组列表(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)
这样。
更多推荐
已为社区贡献6条内容
所有评论(0)