首页 > 解决方案 > 如何将 3 维 NumPy 数组转换为数据框?

问题描述

如何将 3 维 NumPy 数组 [sample_index, channel, data] 转换为数据帧,每个样本为一行,通道为一列?

numpy 数组如下所示:

import numpy as np
np.random.uniform(-25, 100, size=(6400,3,100*100))

标签: pythonpandasnumpy

解决方案


我们试试看:

samples, size = 6, 2*2

data = np.arange(samples*size *3).reshape(samples, 3, size)

pd.DataFrame(data.swapaxes(1,2).reshape(-1,3),
             np.repeat(np.arange(samples), size)
            )

输出,这里,每个索引代表一个样本:

    0   1   2
0   0   4   8
0   1   5   9
0   2   6  10
0   3   7  11
1  12  16  20
1  13  17  21
1  14  18  22
1  15  19  23
2  24  28  32
2  25  29  33
2  26  30  34
2  27  31  35
3  36  40  44
3  37  41  45
3  38  42  46
3  39  43  47
4  48  52  56
4  49  53  57
4  50  54  58
4  51  55  59
5  60  64  68
5  61  65  69
5  62  66  70
5  63  67  71

推荐阅读