python 数据标准化

def datastandard():
  from sklearn import preprocessing
  import numpy as np
  x = np.array([
    [ 1., -1.,  2.],
    [ 2.,  0.,  0.],
    [ 0.,  1., -1.]])
  print('原始数据为:\n',x)
  
  print('method1:指定均值方差数据标准化(默认均值0 方差 1):')
  print('使用scale()函数 按列标准化')
  x_scaled = preprocessing.scale(x)
  print('标准化后矩阵为:\n',x_scaled,end='\n\n')
  print('cur mean:', x_scaled.mean(axis=0), 'cur std:', x_scaled.std(axis=0))
  
  print('使用scale()函数 按行标准化')
  x_scaled = preprocessing.scale(x,axis=1)
  print('标准化后矩阵为:\n',x_scaled,end='\n')
  print('cur mean:', x_scaled.mean(axis=1), 'cur std:', x_scaled.std(axis=1))
  
  print('\nmethod2:StandardScaler类,可以保存训练集中的参数')
  scaler = preprocessing.StandardScaler().fit(x)
  print('标准化前 均值方差为:',scaler.mean_,scaler.scale_)
  print('标准化后矩阵为:\n',scaler.transform(x),end='\n\n')

  print('***2.数据归一化,映射到区间[min,max]:')
  min_max_scaler = preprocessing.MinMaxScaler(feature_range=(0,10))
  print(min_max_scaler.fit_transform(x))

if __name__ == '__main__':
  datastandard()

结果如下:

原始数据为:
 [[ 1. -1.  2.]
 [ 2.  0.  0.]
 [ 0.  1. -1.]]
method1:指定均值方差数据标准化(默认均值0 方差 1):
使用scale()函数 按列标准化
标准化后矩阵为:
 [[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]
cur mean: [ 0.  0.  0.] cur std: [ 1.  1.  1.]

使用scale()函数 按行标准化
标准化后矩阵为:
 [[ 0.26726124 -1.33630621  1.06904497]
 [ 1.41421356 -0.70710678 -0.70710678]
 [ 0.          1.22474487 -1.22474487]]
cur mean: [  1.48029737e-16   7.40148683e-17   0.00000000e+00] cur std: [ 1.  1.  1.]

method2:StandardScaler类,可以保存训练集中的参数
标准化前 均值方差为: [ 1.          0.          0.33333333] [ 0.81649658  0.81649658  1.24721913]
标准化后矩阵为:
 [[ 0.         -1.22474487  1.33630621]
 [ 1.22474487  0.         -0.26726124]
 [-1.22474487  1.22474487 -1.06904497]]

***2.数据归一化,映射到区间[min,max]:
[[  5.           0.          10.        ]
 [ 10.           5.           3.33333333]
 [  0.          10.           0.        ]]

python 常用代码

# coding:utf8
'''
提取文档中含有某个字符的所有行,并打印出来
'''
file_path = 'E:/gengyanpeng/keyun-bi.sql'
fix_str = 'FROM'

def print_line(txt,fix_str):
  lines = txt.split('\n')
  for line in lines:
    if fix_str in line:
      print(line.strip())

with open(file_path,'r+',encoding='utf8') as f:
  text = f.read()

print_line(text,fix_str)
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值