首页 > 解决方案 > 如何从 python 中的列表列表创建二维数组?

问题描述

我有一个看起来像这样的列表列表:

arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

我想创建一个 2 x 2 数组,前 2 个元素位于顶部,后两个元素位于底部,如下所示:

[1, 2, 3], [4, 5, 6]
[7, 8, 9], [10, 11, 12]

到目前为止,我尝试的是使用以下方法重塑:

np.array(arr).reshape(2,2)

但是,每当我这样做时,我都会得到一个ValueError:新数组的总大小必须保持不变 我到底错过了什么或者我怎样才能让它工作?

标签: pythonarraysnumpy

解决方案


尝试使用list理解:

nparr = np.array([arr[i:i + 2] for i in range(0, len(arr), 2)]
print(nparr)

输出:

[[[1 2 3] [4 5 6]]
 [[7 8 9] [10 11 12]]]

推荐阅读