data preprocessing ——time series clip

原数据 文件夹里有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()

代码见上段注释

猜你喜欢

转载自blog.csdn.net/huowa9077/article/details/79061711