這可能是一個愚蠢的問題,我試圖使用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) 就可以完成工作!

精慕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])
添加回答
舉報
0/150
提交
取消