首页 > 解决方案 > 当数组的大小不可整除时,将 numpy 数组拆分为相等的部分

问题描述

我有一个 wav 文件。我想将此音频分成 20 个相等的片段来阅读和获取元信息。我已经在 Matlab 中完成了这个,但我想在 python3.6 中完成。fs 是代码中的采样频率。这是我的工作 matlab 代码;

    [y, fs] = audioread(file)
    windowsize=20*fs;
    trailingsamples=mod(length(y), windowsize);
    sampleframe=reshape(y(1:end-trailingsamples), windowsize, []);

    siz=size(sampleframe);
    nseg=siz(2);  % nseg=NumberOfSegments 

    for i=1:nseg  
            yseg=sampleframe(:,i);
      %extract meta info here...

在python中我试过了;

        from scipy.io import wavfile
        fs, data = wavfile.read(file)

        windowsize=20*fs;
        trailingsamples=len(data)%windowsize

这就是我卡住的地方。我认为使用np.split(data, windowsize)但“数据”中有尾随样本。我需要我的 python 代码执行与 Matlab 代码相同的任务。谢谢

标签: python-3.xnumpy

解决方案


推荐阅读