繁体   English   中英

在Python中将2D列表转换为3D列表

[英]Converting a 2D List to a 3D List in Python

我在尺寸为(2,7)的Python中有一个列表列表(2D List),我想将其转换为尺寸为(2,7,1)的列表列表清单(3D List)。

输入:

[[0, 0, 1, 0, 1, 0, 0],
 [1, 0, 1, 0, 0, 0, 0]]

输出:

[[[0],
  [0],
  [1],
  [0],
  [1],
  [0],
  [0]
 ]
 [[1],
  [0],
  [1],
  [0],
  [0],
  [0],
  [0]]]

我该怎么办?

您可以使用double for循环(或列表理解)来完成此操作,但是对于这种情况,最好使用numpy

 import numpy as np
 x2D = np.array([[0, 0, 1, 0, 1, 0, 0], [1, 0, 1, 0, 0, 0, 0]])
 x3D = x2D[:, :, None]

如果有清单

a = [[0, 0, 1, 0, 1, 0, 0], [1, 0, 1, 0, 0, 0, 0]]

然后在[[i] for i in a]写下

会给你

[[[0, 0, 1, 0, 1, 0, 0]], [[1, 0, 1, 0, 0, 0, 0]]]

这几乎是您想要的,除了每个元素本身都必须是一个列表。 因此,我们可以将其修改为(感谢Tryph!)

[map(lambda x: [x], item) for item in a]

这会给你

[[[0], [0], [1], [0], [1], [0], [0]], [[1], [0], [1], [0], [0], [0], [0]]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM