尝试附加 for 循环时出现 IndexError
IndexError when trying to append with for loop
这可能是个愚蠢的问题,
我正在尝试使用 for 循环 和来自先前定义的名为 data_train_normalized
的 3 维数组的值将值附加到一个新的空数组,该数组包含浮点数。
objective 将以一个名为 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 维数组的索引是 浮点数!而 Python 仅支持 integer 和 Boolean 用于数组索引(错误提到了这一点)。
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) 就可以了!
有关详细信息,请参阅此内容:Python range ()
您正在为 np 数组和 for
循环使用 x
参数。使用不同的参数:
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])
这可能是个愚蠢的问题,
我正在尝试使用 for 循环 和来自先前定义的名为 data_train_normalized
的 3 维数组的值将值附加到一个新的空数组,该数组包含浮点数。
objective 将以一个名为 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 维数组的索引是 浮点数!而 Python 仅支持 integer 和 Boolean 用于数组索引(错误提到了这一点)。
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) 就可以了! 有关详细信息,请参阅此内容:Python range ()
您正在为 np 数组和 for
循环使用 x
参数。使用不同的参数:
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])