微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试附加for循环时出现IndexError

如何解决尝试附加for循环时出现IndexError

这可能是一个愚蠢的问题, 我试图使用 for循环和先前定义的名为data_train_normalized的3维数组(包含浮点数)中的值将值附加到新的空数组中。

目标是最终得到一个名为x的数组,该数组在迭代的每个值中均具有data_train_normalized中的值。例如,x[0]应为值data_train_normalized[1,1,1]

此示例代码总结了我正在尝试做的事情:

x=np.array([])
for z in range(1,4):
  for x in range(1,4):
    for y in range(1,4):
      x = np.append(x,data_train_normalized[z][x][y])

然后抛出:

IndexError                                Traceback (most recent call last)
<ipython-input-43-b0e7b7ab30e9> in <module>()
      3   for x in range(1,4):
      4     for y in range(1,4):
----> 5       x = np.append(x,data_train_normalized[z][x][y])
      6 #      print(data_train_normalized[z][x][y],z,x,y)

IndexError: arrays used as indices must be of integer (or boolean) type

解决方法

由x,y,z返回该3维数组的索引为 floats ! Python仅支持 integer Boolean 作为数组的索引(错误提到了这一点)。

IndexError: arrays used as indices must be of integer (or boolean) type.

您可以尝试简单地使用x=int(x),y = int(y)将x,y和z转换为int,然后再将它们作为索引传递

此外,如果您只想从1开始范围,那么range(4)就可以了! 请参阅此以获取更多信息:Python range ()

,

您正在将x参数用于np数组和for循环。使用其他参数:

arr = np.array([])
for z in range(1,4):
  for x in range(1,4):
    for y in range(1,4):
      arr  = np.append(arr,data_train_normalized[z][x][y])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。