如何在Python/numpy中将3D数组结果保存到4D数组?

Bav*_*raa 6 numpy multidimensional-array

我正在阅读有关32 X 32 RGB图像的信息.因此它是具有形状(32,32,3)的3D阵列,第三维保持颜色R,G和B.

现在,我想阅读50个这样的图像并制作这些图像的数组.所以我决定制作一个4D阵列,其尺寸(50,32,32,3)在这里50在第一维度是图像的数量,第二,第三和第四维度是图像的维度是(32, 32,3)

我尝试使用连接,但我得到错误.有没有办法做到这一点?

jak*_*vdp 9

您需要在连接之前添加轴,例如

import numpy as np
arrs = [np.random.random((32, 32, 3))
        for i in range(50)]

res = np.concatenate([arr[np.newaxis] for arr in arrs])
res.shape
# (50, 32, 32, 3)
Run Code Online (Sandbox Code Playgroud)

编辑:或者,在这种情况下,您只需调用np.array您的数组列表:

res = np.array(arrs)
res.shape
# (50, 32, 32, 3)
Run Code Online (Sandbox Code Playgroud)

  • @user3051460:尝试``np.stack(arrs,axis=3)`` (2认同)