我在Python中有一个维度(2,7(的列表列表(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]]]
我该怎么做?
你可以用双 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]]]
.
这几乎是你想要的,除了每个元素本身都需要是一个列表。所以我们可以将其修改为(谢谢特里夫!
[map(lambda x: [x], item) for item in a]
这会给你
[[[0], [0], [1], [0], [1], [0], [0]], [[1], [0], [1], [0], [0], [0], [0]]]
.