39 lines
1021 B
Python
39 lines
1021 B
Python
#-*- encoding:utf-8 -*-
|
||
|
||
'''
|
||
@Author : dingjiawen
|
||
@Date : 2023/5/22 20:33
|
||
@Usage :
|
||
@Desc : lttb算法的实现:保留时序数据波动细节的算法
|
||
'''
|
||
|
||
import numpy as np
|
||
import pandas as pd
|
||
import lttb
|
||
def lttb_try(a):
|
||
length, = a.shape
|
||
print(length,":",length)
|
||
b = np.array([range(length),a]).T
|
||
print(b)
|
||
print(b.shape)
|
||
return lttb.downsample(b,n_out=int(length/10))
|
||
|
||
if __name__ == '__main__':
|
||
cms_data_path = r"E:\data\cmsDemo\华能三塘湖项目(一期)_D3-29_Shaft2_径向_25600_加速度g_14.41RPM_20180618003450.csv"
|
||
cms_data_df = pd.read_csv(cms_data_path, encoding='gbk', header=None)
|
||
cms_data_df = cms_data_df.values[0]
|
||
data_before = cms_data_df[:1000]
|
||
down_sample = lttb_try(data_before)
|
||
print(down_sample.shape)
|
||
|
||
import matplotlib.pyplot as plt
|
||
|
||
plt.subplot(2, 1, 1)
|
||
plt.plot(data_before)
|
||
plt.subplot(2, 1, 2)
|
||
plt.plot(down_sample[:, 1])
|
||
plt.show()
|
||
|
||
# assert small_data.shape == (20, 2)
|
||
|
||
# print(cms_send_data.shape) |