python
#!/usr/bin/env python # -*- coding: utf-8 -*- # @File : CasicMathBase.py # @Author: lh # @Date : 2018/6/14 # @Desc : 算法数据预处理工具 import numpy as tz_num class Tz_math_base(object): # 定义数据预处理方法 # 数列len # 不符合规则的数据 # target 要处理的数列 # 要处理的一个或多个数列(self param is touple) def tz_trans(self, standard, param): if len(standard) == 0: # 如果目标数列为空,任何计算都是没有意义的 pass else: # 目标数列长度 tar_length = len(standard) for list_i in param: if len(list_i) < tar_length and len(list_i) != 0: len_i = tar_length - len(list_i) while len_i > 0: list_i.append(tz_num.average(list_i)) len_i -= 1 elif len(list_i) > tar_length: len_i = len(list_i) - tar_length while len_i > 0: list_i.pop() len_i -= 1 else: pass # Z-score标准化方法 def tz_score(self, list): if len(list) == 0: pass else: # 均值 mean = tz_num.average(list) # 标准差 std = tz_num.std(list) res = [] for i in list: res = (i - mean) / std res.append(res) return res # 归1标准化 def tz_ineins(self, list): if len(list) == 0: pass else: res = [] tz_max = tz_num.max(list) tz_min = tz_num.min(list) tz_range = tz_max - tz_min if tz_range == 0: for i in list: res.append(i -