我有一个子程序列表,我试图在循环中访问:
index=[5,3,4,1,1,3,4,2,3,4,2,2,3,3,2,4]
subgraph=[[subgraph1],[subgraph2],[subgraph3],[subgraph4],[subgraph5]]
for i in range(len(index)):
for j in range(i+1,len(index)):
if index[j]==index[i]
continue
testgraphi=copy.copy(subgraph[index[i]])
testgraphj=copy.copy(subgraph[index[j]])
因此,在第一个循环中,testgraphi
将被分配subgraph5
,而testgraphj
将被分配subgraph3
。但是,当我尝试此方法时,我返回错误list indices must be integers, not numpy.float64
。这是合乎逻辑的,因为index
在我的程序的整个范围内被实际初始化为一个numpy数组(并且它必须保持这种方式)。所以我的问题是,我如何转换这个值,以便它可以用作我的子图列表的索引?因此,当初始化testgraph
时,它将检索循环所在的索引值,并使用它来定义要返回的列表索引?
答案 0 :(得分:3)
您可以通过执行以下操作将numpy.float64
转换为浮动:var.item()
。然后将其转换为整数,以便将其用作索引:int(var.item())
答案 1 :(得分:1)
new_index = np.asarray(index, dtype=np.int32)
这应该将索引中的所有值都转换为整数。