Python 尝试附加for循环时的索引器错误

Python 尝试附加for循环时的索引器错误,python,numpy,append,indices,Python,Numpy,Append,Indices,这可能是个愚蠢的问题, 我试图使用for循环和先前定义的名为data\u train\u normalized的三维数组中的值,将值附加到新的空数组中,该数组包含浮点数 目标是最终得到一个名为x的数组,该数组在迭代的每个值中都有来自数据的值。例如,x[0]应该是data\u train\u normalized[1,1,1] 此示例代码总结了我尝试执行的操作: x=np.array([]) for z in range(1,4): for x in range(1,4): for y

这可能是个愚蠢的问题, 我试图使用for循环和先前定义的名为
data\u train\u normalized
的三维数组中的值,将值附加到新的空数组中,该数组包含浮点数

目标是最终得到一个名为
x
的数组,该数组在迭代的每个值中都有来自
数据的值。例如,
x[0]
应该是
data\u train\u 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
索引器错误回溯(最近一次调用)
在()
范围(1,4)内的x为3:
在(1,4)范围内,y为4:
---->5x=np.append(x,数据序列规格化[z][x][y])
6#打印(数据_列_归一化[z][x][y],z,x,y)
索引器错误:用作索引的数组必须是整数(或布尔)类型

通过x、y、z返回到该三维数组的索引是浮动的!而Python只支持数组索引的整数布尔(错误中提到了这一点)

您可以尝试将x、y和z转换为int,然后使用
x=int(x),y=int(y)

另外,如果您只想从1开始范围,那么范围(4)将完成此工作!
有关更多信息,请参阅此链接:

通过x、y、z返回到该三维数组的索引是浮动的!而Python只支持数组索引的整数布尔(错误中提到了这一点)

您可以尝试将x、y和z转换为int,然后使用
x=int(x),y=int(y)

另外,如果您只想从1开始范围,那么范围(4)将完成此工作!
有关更多信息,请参阅此项:

您正在对np数组和循环使用
参数
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])

您对np数组和循环都使用了
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])

谢谢你让我意识到这个愚蠢的错误,这次使用符号根本帮不了我。谢谢你让我意识到这个愚蠢的错误,这次使用符号根本帮不了我。
np.append
不是一个好函数。坚持使用列表附加。
np.append
不是一个好的函数。坚持列表附加。