我需要從文件夾中讀取圖像文件(28 * 28)並將它們堆疊在一起以製作單個數組進行分析。添加2d數組以在python中製作3d
我有以下代碼:
for fname in os.listdir(dirname):
im = Image.open(os.path.join(dirname, fname))
imarray = np.array(im)
final = np.stack((final,imarray), axis = 0)
是得到以下錯誤: ValueError異常:所有輸入數組必須具有相同的形狀
imarray是(28,28)和i具有60K的圖像該文件夾中,所以我想使大小的陣列(60000,28,28)
感謝您的幫助 NK
將這些圖像添加到列表中(在循環中)並將該列表作爲輸入(不在循環中)調用vstack。這對於性能尤爲重要。或者,如果您先驗知道有多少imgs即將到來。它們的形狀:構建一個空的3d數組並將其添加到此數組(更好的方法)。 – sascha
我試過這個在os.listdir(dirname)中的fname: im = Image.open(os.path.join(dirname,fname)) imarray = np.array(im) fin = np.empty((60000 ,28,28)) fin = np.vstack((fin,imarray))並得到錯誤「所有輸入數組必須具有相同的維數」 – user6658936
我描述了兩種不同的方法,不要混合它們。另外:這是不可讀的。那麼...... hpaulj的答案涵蓋了第一種方法。如果他的解決方案不起作用,你對形狀的假設(28,28)可能是錯誤的。 – sascha