如何获取数据框内一列矩阵的矩阵列的平均值?

时间:2019-06-19 18:36:48

标签: python-3.x pandas numpy dataframe matrix

我有一个包含两列的数据框。第一列具有类编号(1或0)。第二列包含的矩阵为(1999,13)。我试图弄清楚如何通过获取每个矩阵列的平均值将矩阵转换为(1,13)。

我这样做的原因是为了进行音频处理。我为我拥有的每10秒音频文件提取了MFCC。每10秒钟音频有1999帧,每帧具有13个倒频谱系数。

example_df = pd.DataFrame()
example_df['Class'] = [1,0,0]
example_df['MFCCs'] =[np.random.rand(4,2),np.random.rand(4,2),np.random.rand(4,2)]
example_df

当我应用np.mean时,即使我指出“ MFCCs”列,我也几乎总是得到该类的平均值,约为0.5。

预期输出应为

   Class  MFCCs
0  1      [C01,C02]
1  0      [C11,C12]
2  0      [C21,C22]

1 个答案:

答案 0 :(得分:0)

您可以使用np.mean并指定要取平均值的轴,在这种情况下,轴= 0。例如:

a = np.arange(8).reshape(4,2)
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7]])

np.mean(a,axis=0)
array([3., 4.])

出于您的目的,您可以一行完成:

arrays = [np.random.rand(4,2),np.random.rand(4,2),np.random.rand(4,2)]
example_df['MFCCs'] =[np.mean(a,axis=0) for a in arrays]