为了账号安全,请及时绑定邮箱和手机立即绑定

尝试附加 for 循环时出现 IndexError

尝试附加 for 循环时出现 IndexError

Helenr 2023-08-08 17:52:08
这可能是一个愚蠢的问题,我试图使用for 循环将值附加到一个新的空数组,并将之前定义的名为 3 维数组的值附加到一个新的空数组中data_train_normalized,该数组包含浮点数。目标是最终得到一个名为 的数组,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
查看完整描述

2 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

x,y,z 返回到该 3 维数组的索引是浮点数!而Python仅支持整数布尔值作为数组索引(错误提到了这一点)。

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

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

另外,如果您只想从 1 开始范围,那么 range(4) 就可以完成工作!


查看完整回答
反对 回复 2023-08-08
?
精慕HU

TA贡献1845条经验 获得超8个赞

您正在使用xnp 数组和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])


查看完整回答
反对 回复 2023-08-08
  • 2 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信