原数据 文件夹里有140个数据长度不等的npz数组
1.自定义windows函数
import numpy as np
import glob
import os
parent_dir='waveform'
sub_dir='fold1'
file_ext="*.npz"
window_size=10000
num=0
def windows(data, window_size):
start = 0
while start < len(data):
yield start, start + window_size
start += (window_size // 4)
for fn in glob.glob(os.path.join(parent_dir,sub_dir,file_ext)):
wave_clip = np.load(fn)
wavelabel = fn.split('-')[3].split('.')[0]
wavelist = []
# 均匀切成1w的长度 overlap = 1/4
for (start, end) in windows(wave_clip, window_size):
if (len(wave_clip[start:end]) == window_size):
signal = wave_clip[start:end]
wavelist.append(signal)
# wavelist.append(np.split(wave_clip,length))
# wavelist=wavelist[0]
length=len(wavelist)
for i in range(0,length):
signal=wavelist[i]
fname = 'waveform/fold3'+'/'+'data' + '_' + str(num) + '_' + str(i) + '_' + str(wavelabel) + '.npy'
np.save(fname,signal)
num=num+1
2.调用np.split()
代码见上段注释