我有一个包含两列的数据框。第一列具有类编号(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]
答案 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]