在 Python 中合并多维特征

数据挖掘 机器学习 Python 美国有线电视新闻网 麻木的
2022-03-08 22:32:42

我正在尝试对音频数据集进行 10 倍交叉验证。音频被剪辑成小段,所以我们有来自同一个文件的多个剪辑。为了避免过度拟合,每个音频都被分配到一个特定的折叠。文件结构类似于 UrbanSoundDataset。我正在为每个折叠生成 MFCC 功能并使用以下代码保存这些功能:

   np.savez("{0}/{1}_mfcc".format(save_dir, "fold"+str(fold_id)), features=X, 
             labels=y)

每个折叠的特征集固定为行 x 40 mfcc x 174 维度。例如,折叠 1 的尺寸为 (534, 40, 174),折叠 2 的尺寸为 (538, 40, 174)。当我加载折叠值时,我想将 9 个折叠堆叠在一起进行训练。例如,如果我在上面的示例中堆叠 fold1 和 fold2,那么在堆叠过程结束时我应该有 (1072,40,174) 长度数组。

我怎样才能使用 numpy 做到这一点?

1个回答

我认为您正在寻找的是numpy.concatenate.

从文档中,这允许您:

沿现有轴连接一系列数组。

它具有函数签名:

numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")

有关更多信息,请参阅文档