python数据分析数据标准化及离散化详解

本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下

标准化

1、离差标准化

是对原始数据的线性变换,使结果映射到[0,1]区间。方便数据的处理。消除单位影响及变异大小因素影响。

基本公式为:    

x'=(x-min)/(max-min)



代码:    

#!/user/bin/env python

#-*- coding:utf-8 -*-

#author:M10

import numpy as np

import pandas as pd

import matplotlib.pylab as plt

import mysql.connector

conn = mysql.connector.connect(host='localhost',

           
user='root',

           
passwd='123456',

           
db='python')#链接本地数据库

sql = 'select price,comment from taob'#sql语句

data = pd.read_sql(sql,conn)#获取数据

#离差标准化

data1 = (data-data.min())/(data.max()-data.min())

print(data1)

运行结果

2、标准差标准化

消除单位影响以及变量自身变异影响。(零-均值标准化) 

基本公式为:

x'=(x-平均数)/标准差

python代码:  
 

#!/user/bin/env python

#-*- coding:utf-8 -*-

#author:M10

import numpy as np

import pandas as pd

import matplotlib.pylab as plt

import mysql.connector

conn = mysql.connector.connect(host='localhost',

           
user='root',

           
passwd='123456',

           
db='python')#链接本地数据库

sql = 'select price,comment from taob'#sql语句

data = pd.read_sql(sql,conn)#获取数据

#标准差标准化

data1 = (data-data.mean())/data.std()

print(data1)

运行结果:

3、小数定标标准化

消除单位影响 

基本公式为: 

其中j=lg(max(|x|)),即以10为底的x的绝对值最大的对数

x' = x/10^j

实现代码为:    

#!/user/bin/env python

#-*- coding:utf-8 -*-

#author:M10

import numpy as np

import pandas as pd

import matplotlib.pylab as plt

import mysql.connector

conn = mysql.connector.connect(host='localhost',

           
user='root',

           
passwd='123456',

           
db='python')#链接本地数据库

sql = 'select price,comment from taob'#sql语句

data = pd.read_sql(sql,conn)#获取数据

#标准差标准化

j = np.ceil(np.log10(data.abs().max()))#进一取整,abs()为取绝对值

data1 = data/10**j

print(data1)

结果:

离散化

离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法

1、等宽离散化

将连续数据按照等宽区间标准离散化数据,好处之一是处理的数据是有限个数据而不是无限多。 

使用pandas的cut方法。非等宽只需要更改cut的第二个参数,例如:第二个参数为[1,100,3000,10000,200000],即划分为了四个区间。

#!/user/bin/env
python
#-*- coding:utf-8 -*-
#author:M10
importnumpy as np
importpandas as pd
importmatplotlib.pylab as
plt
importmysql.connector
conn=mysql.connector.connect(host='localhost',
            user='root',
            passwd='123456',
            db='python')#链接本地数据库
sql='select price,comment
from taob'#sql语句
data=pd.read_sql(sql,conn)#获取数据
#离散化
data1=data['price'].T.values#获取价格的一维数组
lable=['很低','低','中','高','很高']
data2=pd.cut(data1,5,labels=lable)
print(data2)

执行结果:

2、等频率离散化

将相同数量的数据放进一个区间。

3、一维聚类离散化

按属性对数据进行聚类离散。

以上就是本文的全部内容,希望对大家的学习有所帮助


python数据分析数据标准化及离散化详解的更多相关文章

  1. Python做简单的字符串匹配详解

    Python做简单的字符串匹配详解 由于需要在半结构化的文本数据中提取一些特定格式的字段.数据辅助挖掘分析工作,以往都是使用Matlab工具进行结构化数据处理的建模,matlab擅长矩阵处理.结构化数 ...

  2. Python学习一:序列基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7858473.html 邮箱:moyi@moyib ...

  3. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  4. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  5. python设计模式之迭代器与生成器详解(五)

    前言 迭代器是设计模式中的一种行为模式,它提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示.python提倡使用生成器,生成器也是迭代器的一种. 系列文章 python设计模 ...

  6. python+requests接口自动化测试框架实例详解

    python+requests接口自动化测试框架实例详解   转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...

  7. (转)python标准库中socket模块详解

    python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...

  8. Python网络请求urllib和urllib3详解

    Python网络请求urllib和urllib3详解 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urlli ...

  9. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

随机推荐

  1. jar包中存在包名和类名都相同的情况

    情况: 在maven中引入两个包都有项目的包名和类名,只是jar包的名字不同.两个包的一部分在代码中的不同地方都需要用到. 网上找的大部分都是: 只有改变编译器优先选择的jar顺序(这个顺序是可以改变 ...

  2. Kubernetes概览

    Kuberbetes这个名字是什么意思?k8s又是什么?Kubernetes这个名字源自希腊语,意思是“舵手”,也是“管理者”,“治理者”等词的源头.k8s是 Kubernetes的简称(用数字『8』 ...

  3. java中使用redis --- List列表的简单应用

    1.Dos中启动server端 2.idea中启动client端 public class RedisTest01 { public static void main(String[] args){ ...

  4. MySQL之left jion 、 right jion 和inner jion 的区别和使用方法

    left jion   左联结 right jion 右联结 inner jion 等值联结 create table teacher( tid ) primary key auto_incremen ...

  5. JavaScript 廖2

    HTML表单的输入控件主要有以下几种: 文本框,对应的<input type="text">,用于输入文本: 口令框,对应的<input type="p ...

  6. JS闭包是什么?

    闭包是js开发惯用的技巧,什么是闭包? 闭包指的是:能够访问另一个函数作用域的变量的函数. 清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量. function outer(){ ...

  7. Moq练习

    本文参考 http://www.cnblogs.com/haogj/archive/2011/06/24/2088788.html Moq适合于TDD的项目,小项目初期应该不太适合使用,有些浪费时间了 ...

  8. 29、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi

    29.[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi

  9. HTML 003 元素

    HTML 元素 HTML 文档由 HTML 元素定义. HTML 元素 开始标签 * 元素内容 结束标签 * <p> 这是一个段落 </p> <a href=" ...

  10. pstmt.getGeneratedKeys()更换jar包后报错

    改成: pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); rs=pstmt.getGeneratedKeys(); 即 ...