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. 《AlwaysRun!》第五次作业:项目需求分析改进与系统设计

     项目 内容 这个作业属于哪个课程 2016级软件工程(西北师范大学) 这个作业的要求在哪里 实验九 团队作业5—团队项目需求改进与系统设计 团队名称 Always Run! 作业学习目标 (1)掌握 ...

  2. PL/SQL复合类型

    一.PL/SQL记录:一条记录. 可简化单行多列的数据的处理.当使用pl/sql记录时,应用开发人员即可以自定义记录类型和记录变量,也可以使用%rowtype属性直接定义记录变量. 1.当使用自定义的 ...

  3. 为 32 位单片机设计的脚本语言 Berry

    Berry是一款一款为32位单片机设计的脚本语言.Berry解释器使用C89标准实现,该语言可以在RAM或ROM很小的设备上运行. 尽管Berry的体积很小,但是它也支持class以及闭包等功能,使得 ...

  4. c++面向对象模型---c++如何管理类,对象以及它们之间的联系

    首先我们随意定义4个类结构 class cl1 { private: int age; string name; static int addr; public: cl1() { } void iwa ...

  5. 洛谷P2577 午餐【贪心】【线性dp】

    题目:https://www.luogu.org/problemnew/show/P2577 题意:n个人每个人有一个打饭时间和吃饭时间,将他们分成两个队伍.每个人打到饭之后就马上去吃饭.问怎么安排可 ...

  6. 服务器nginx部署PHP项目样式不出来要注意的小问题

    服务器使用nginx部署PHP项目的时候如果样式没有 出来,那么很可能 location 块里出问题了. 比如 location / { root /home/wwwroot/default/php_ ...

  7. 006——转载-MATLAB数字与字符之间的转换

    (一)参考文献:https://jingyan.baidu.com/article/5bbb5a1bd8dcb113eba1799d.html (二)数字转换成字符串 第一步在我们的电脑上打开matl ...

  8. Flume实时监控目录sink到hdfs,再用sparkStreaming监控hdfs的这个目录,对数据进行计算

    目标:Flume实时监控目录sink到hdfs,再用sparkStreaming监控hdfs的这个目录,对数据进行计算 1.flume的配置,配置spoolDirSource_hdfsSink.pro ...

  9. go安装与goland破解永久版

    一.go安装 1.建议去go语言中文网下载,网址:https://studygolang.com/dl ,下图是下载页面及包介绍 2.Windows版安装 3.在cmd命令行窗口输入“go versi ...

  10. 在Ubuntu Server上使用vtk处理体数据,直接得到渲染结果图片避免显示窗口

    概述 需要调用vtk对体数据进行渲染处理,处理结果直接存为图片而不通过窗口显示. 直接使用vtkRenderWindow加上vtkWindowToImageFilter类写入,在调用渲染的过程中会出现 ...