添加2d数组以在python中创建3d

时间:2017-10-17 19:54:27

标签: python numpy

我需要从文件夹中读取图像文件(28 * 28)并将它们堆叠在一起以形成单个阵列进行分析。

我有以下代码:

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),我在该文件夹中有60K图像所以我想制作一个大小的数组(60000,28,28)

感谢您的帮助 NK

1 个答案:

答案 0 :(得分:0)

构建所有组件的列表并将它们堆叠一次:

alist = []
for fname in os.listdir(dirname):
    im = Image.open(os.path.join(dirname, fname))
    imarray = np.array(im)
    alist.append(imarray)
final = np.stack(alist)   # axis=0 is the default

这会将它们连接到一个新的初始轴上。