如何加入两个 3D numpy 数组,以便 np.arr(1,m,n) + np.arr(1,m,n) = np.arr(2,m,n)

问题描述

我有几个 3 维 numpy 数组,我想将它们连接在一起,作为我的 LSTM 神经网络的训练集。它们的形状大多是 (1,m,n)

我想加入他们,例如np.arr(1,50,20) + np.arr(1,20) = np.arr(2,20) 和 np.arr(1,20) + np.arr(3,20) = np.arr(4,20)

numpy 的哪些堆栈函数适合我的问题?或者有其他更有效的方法解决它吗?

解决方法

对第一个轴使用 numpy concatenate

import numpy as np
rng = np.random.default_rng()
a = rng.integers(0,10,(1,3,20))
b = rng.integers(-10,-1,(2,20))

c = np.concatenate((a,b),axis=0)

print(c.shape)

(3,20)
,

使用np.vstack

    x = np.array([[[2,5],[4,5,1]]])
    y = np.array([[[1,8],[8,9]]])
    x.shape
    (1,2,3)    
    np.vstack((x,y)).shape
    (2,3)