[英]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.