Python 具有不同大小的二维阵列到三维阵列的列表
我有一个程序,可以生成具有不同行数的二维数组,并将它们附加到列表中。我需要将该列表合并到一个2D数组的3D数组中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
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阵列会更好。也许你会自己回答这个问题;)我想起了一个原因。在该数据中,将有列中的交易量,我想使用所有交易量的总和进行规范化。