三行代码  ›  专栏  ›  技术社区  ›  david

如何在python中用两个2D数组初始化3D数组?

  •  1
  • david  · 技术社区  · 1 月前

    我有两个数组,如下所示:

    a=np.vstack([np.loadtxt(path, dtype='float') for path in glob.iglob(r'E:/PostDoc/720/*.txt')])
    b=np.vstack([np.loadtxt(path, dtype='float') for path in glob.iglob(r'E:/PostDoc/1080/*.txt')])
    

    这个 a b (640,6)

    c = [[[0 for col in range(6)]for row in range(len(psnr_bitrate_1080))] for x in range(2)]
    

    我想把a和b放到c中,为此,我使用以下代码:

    c[:][:][0]=a
    c[:][:][1]=b
    

    c C A. C 列表是在 A. B A. B

    1 回复  |  直到 1 月前
        1
  •  1
  •   Valdi_Bo    1 月前

    如果您想“堆叠”两个二维阵列,那么最直观的方法是 使用 dstack :

    c = np.dstack((a, b))
    

    这样,您以前甚至不需要创建任何空数组。

    但如果您想“沿另一个轴”堆叠两个源阵列 (正如我从您的评论中看到的),运行例如:

    c2 = np.swapaxes(c, 1, 2)
    

    然后 c2[:,0,:]