我目前有一个看起来像这样的数据框:
x y z val1 val2
0 1 1 1 5 13
1 1 1 2 6 14
2 1 2 1 7 15
3 1 2 2 8 16
4 2 1 1 9 17
5 2 1 2 10 18
6 2 2 1 11 19
7 2 2 2 12 20
我可以使用pd.melt将其转换为:
x y z val
0 1 1 1 5
1 1 1 1 13
2 1 1 2 6
3 1 1 2 14
4 1 2 1 7
5 1 2 1 15
6 1 2 2 8
7 1 2 2 16
8 2 1 1 9
9 2 1 1 17
10 2 1 2 10
11 2 1 2 18
12 2 2 1 11
13 2 2 1 19
14 2 2 2 12
15 2 2 2 20
我想将其转换为4D numpy数组或3D numpy数组的列表,其中numpy数组的每个条目对应于数据帧中的x,y,z值,第一个数组对应于val1,第二个数组对应到val2等。使用数据透视表似乎很有用,但是我不太清楚如何操作。
我想要的输出看起来像这样:
[[[[5 9]
[7 11]]
[[6 10]
[8 12]]]
[[[13 16]
[15 19]]
[[14 18]
[16 20]]]]