将numpy数组元素包装为整数

时间:2015-06-26 21:17:16

标签: python arrays numpy indexing casting

我有一个子程序列表,我试图在循环中访问:

 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时,它将检索循环所在的索引值,并使用它来定义要返回的列表索引?

2 个答案:

答案 0 :(得分:3)

您可以通过执行以下操作将numpy.float64转换为浮动:var.item()。然后将其转换为整数,以便将其用作索引:int(var.item())

答案 1 :(得分:1)

你可以试试这个:

new_index = np.asarray(index, dtype=np.int32)

这应该将索引中的所有值都转换为整数。