簡體   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