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



我在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]]].

相关内容

  • 没有找到相关文章

最新更新