首页 > 解决方案 > 重塑 np 数组的块

问题描述

我有一个名为“all_runs”的 numpy 数组,它由我在一个函数中附加的数百个 np 数组组成。这是我附加两个数组时的示例:

[0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]    

我想将其重塑为以下内容:


0      1       2
0      1       2
0      1       2
0      1       2
0      1       2
0      1       2
0      1       2
0      1       2

我试过这个:

df = pd.DataFrame(all_runs.reshape(3, 8))

但它没有给出我想要的结果:

0      0       0
0      1       1
1      1       2
2      2       2
0      0       0
0      1       1
1      1       2
2      2       2

有没有一种有效的方法来拆分数组并以上面显示的格式重塑它?

标签: pythonarraysnumpyreshape

解决方案


在一行中:

a = np.array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2])
print(np.vstack(np.hsplit(a.reshape(6,4).transpose(),2)))

输出:

[[0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]]

推荐阅读