Python重塑列表到ndim数组

Ben*_*enP 14 python numpy reshape

嗨,我有一个长度为2800的列表平面,它包含28个变量中的每一个的100个结果:下面是2个变量的4个结果的示例

[0,
 0,
 1,
 1,
 2,
 2,
 3,
 3]
Run Code Online (Sandbox Code Playgroud)

我想将列表重新整形为数组(2,4),以便每个变量的结果都在一个元素中.

[[0,1,2,3],
 [0,1,2,3]]
Run Code Online (Sandbox Code Playgroud)

下面给出了相同顺序的值,但这不正确:

np.shape = (2,4) 
Run Code Online (Sandbox Code Playgroud)

例如.

[[0,0,0,0]
 [1,1,1,1]]
Run Code Online (Sandbox Code Playgroud)

kaz*_*ase 20

您可以考虑重新整形,从展平的原始列表/数组中逐行填充新形状(最后一个维度变化最快).

一个简单的解决方案是将列表整形为(100,28)数组,然后转置它:

x = np.reshape(list_data, (100, 28)).T
Run Code Online (Sandbox Code Playgroud)

有关更新示例的更新:

np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (4, 2)).T
# array([[0, 1, 2, 3],
#        [0, 1, 2, 3]])

np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (2, 4))
# array([[0, 0, 1, 1],
#        [2, 2, 3, 3]])
Run Code Online (Sandbox Code Playgroud)