网上检索使用python实现[-1,1]的归一化,发现大多数方法需同时用到numpy库和sklearn库,对于没有安装sklearn库的环境来说不太适用。
这里采用映射的思想,仅使用numpy库来实现[-1,1]的归一化,并限制归一化后小数点后的位数。
#函数定义
def normalization(mdatas):
#获取数据中的最大最小值
data_min = min(mdata)
data_max = max(mdata)
#初始化归一化列表
datas_normalized = []
for mdata in mdatas:
# 计算归一化数据的占比
normalizedRatio = (mdata - data_min) / (data_max - data_min)
#利用映射关系,-1~1的距离是2
data_normalized = -1 + 2*normalizedRatio
datas_normalized.append(round(data_normalized, 3))#规定浮点数小数点后3位
return datas_normalized