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()

代碼見上段註釋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章