Python 具有不同大小的二维阵列到三维阵列的列表

Python 具有不同大小的二维阵列到三维阵列的列表,python,arrays,Python,Arrays,我有一个程序,可以生成具有不同行数的二维数组,并将它们附加到列表中。我需要将该列表合并到一个2D数组的3D数组中 A = np.zeros(15).reshape(3,5) B = np.zeros(20).reshape(4,5) C = np.zeros(25).reshape(5,5) lst = [A, B, C] [array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0

我有一个程序,可以生成具有不同行数的二维数组,并将它们附加到列表中。我需要将该列表合并到一个2D数组的3D数组中

A = np.zeros(15).reshape(3,5)
B = np.zeros(20).reshape(4,5)
C = np.zeros(25).reshape(5,5)
lst = [A, B, C]

[array([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]]), 
 array([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]]), 
 array([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])]
需要这样的3D阵列

[[[0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]] 
 [[0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]]
 [[0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]
  [0. 0. 0. 0. 0.]]]

使用
tolist
方法:

lst = [A.tolist(), B.tolist(), C.tolist()]
或更通用:

lst_of_arrays = [A, B, C] # Could be initialized differently
lst = [ar.tolist() for ar in lst_of_arrays ]

谢谢。但它是列表,我需要3D阵列。我尝试了np.array(lst),但它返回数组的数组。我读到它是一样的,但是我想要像“[[]]”这样的普通符号,而不是数组([array([]),array([]))”,多维numpy数组被设计为在子数组之间具有一致的维度,因为否则许多操作就没有意义。为什么你需要一个3D阵列而不是2D阵列列表或3D列表?我还不知道。我希望这是必要的。我计划为OpenAI环境构建这些阵列的观测结果。我将转换/处理/粘贴3D阵列的一部分到我的新观察阵列。我认为这样会更快。在找到重新格式化数据的好理由之前,保存2D数组列表可能是最好的选择。回来吧,但是试着提出一个好的理由,为什么拥有一个3D阵列会更好。也许你会自己回答这个问题;)我想起了一个原因。在该数据中,将有列中的交易量,我想使用所有交易量的总和进行规范化。