From cbf24656f908f699106920f09fd11e78bf77de3c Mon Sep 17 00:00:00 2001 From: Rance4396 <2437708352@qq.com> Date: Fri, 27 May 2022 16:44:49 +0800 Subject: [PATCH] =?UTF-8?q?Changes:=E8=BF=AD=E4=BB=A3=E6=96=B9=E5=B7=AE?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- variance_x.py | 32 ++++++++++++++++++++++++++++++++ variance_x_test_csv.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 variance_x.py create mode 100644 variance_x_test_csv.py diff --git a/variance_x.py b/variance_x.py new file mode 100644 index 0000000..6dd8ec5 --- /dev/null +++ b/variance_x.py @@ -0,0 +1,32 @@ +from algorithm import algorithm +import json +import ray + +@ray.remote +class variance_x(algorithm): + def __init__(self): + self.config_dict_ = None + self.config_ = None + self.window_length_ = 10 + self.avg_ = 0 + self.var_ = 0 + + def set_config(self, config): + self.config_ = config + self.config_dict_ = json.loads(self.config_) + self.window_length_ = self.config_dict_["WINDOW_LENGTH"] + self.init_flag_ = False + + def config(self): + return self.config_ + + def eval(self, value): + if self.init_flag_ == False: + self.init_flag_ = True + self.avg_ = value + self.var_ = 0 + else: + present_avg_ = self.avg_ * (self.window_length_ - 1)/self.window_length_ + value / self.window_length_ + self.var_ = self.var_ +(value - present_avg_) * (value-self.avg_) + self.avg_ = present_avg_ + return self.var_ diff --git a/variance_x_test_csv.py b/variance_x_test_csv.py new file mode 100644 index 0000000..4dedcf6 --- /dev/null +++ b/variance_x_test_csv.py @@ -0,0 +1,31 @@ +import pandas as pd +from variance_x import variance_x +import ray + +ray.init() + +RAY_DISABLE_MEMORY_MONITOR=1 +filepath = "D:/python_project_data/1.csv" +origin_data = pd.read_csv(filepath) +row_len = origin_data.shape[0] +cow_len = origin_data.shape[1] +variance_data = origin_data +algorithm_variance_x = variance_x.remote() + +cow_name = "G1.TTXD1_3" +contrast_data = pd.DataFrame() +contrast_data[cow_name+'_origin'] = origin_data[cow_name] +algorithm_variance_x.set_config.remote('{"WINDOW_LENGTH": 5 }') +# algorithm_step.set_config('{"CYCLE_TIME_BASE": 5 }') +for i in range(0,row_len): + futures=algorithm_variance_x.eval.remote(origin_data.loc[i,cow_name]) + variance_data.loc[i, cow_name]=ray.get(futures) + +print(variance_data.loc[:, cow_name]) +contrast_data[cow_name+'_variance_x'] = variance_data[cow_name] +# average_data.to_csv("D:/python_project_data/1_disturb.csv", index=False) +contrast_data.to_csv("D:/python_project_data/variance_data_x.csv", index=False) + + +# 以下均为测试性能用 +# print(algorithm_step.config_) \ No newline at end of file