python——numpy——数据分区(digitize,cut,qcut,quantile函数)
一、区间划分
1、digitize():主要用于将一组数据进行分区。
主要参数:
- bins:标量序列,分区的依据,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。。
返回值:所属区间的上限在bins中的索引。
import numpy as np
import pandas as pdfrom IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df#创建分区
bins=np.arange(135,215,5)#注意:bins数据是有要求的,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。#digitize
indices=np.digitize(df['a'],bins) #返回值为每个值所属区间的索引。
print('------digitize算法:返回索引------')
indices#打上标签
df['a1']=[str(bins[i-1])+"~"+str(bins[i]) for i in indices]
df
输出:
接下来可根据分区进行汇总操作:
df.groupby(['a1'])['a'].count().reset_index()
输出:
2、cut():主要用于将一组数据进行分区。
主要参数:
- bins:标量序列,分区的依据,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。。
- label:标签,分区之后,返回值中各区间可以用标签一一替换显示,如果不指定,返回值以半开区间的分区显示,例如(100,200]。
返回值:各个数据所在bins中的区间。
import numpy as np
import pandas as pdfrom IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df#创建分区
bins=np.arange(135,215,5)#注意:bins数据是有要求的,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据。print('------cut算法------')
#cut算法
df['a2']=pd.cut(df['a'],bins# ,labels=['bad','medium','good','awesome'])
df
输出:
二、分位数划区间
1、qcut():主要用于将一组数据进行分区,是cut里面的特例,是以分位数进行分区的。
主要参数:
- q:按分位数进行分区之后的区间数,例如4,则是按照(0,25,50,75,100]这样的分区分成四段。
- label:标签,分区之后,返回值中各区间可以用标签一一替换显示。
返回值:各个数据所在的区间。
import numpy as np
import pandas as pdfrom IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
dfprint('------qcut算法------')
#qcut算法
df['a3']=pd.qcut(df['a'],4# ,labels=['bad','medium','good','awesome'])
df
输出:
2、quantile():主要用于将一组数据进行分区,计算沿指定轴的数据的第q个分位数。
主要参数:
a :输入数组或可以转换为数组的对象。
q :要计算的分位数或分位数序列,必须在0到1之间(含0和1)。
axis : 可选,用于计算分位数的一个或多个轴。默认值是沿数组的展平版本计算分位数。
返回值:返回第q个分位数或者是一组分位数序列。
import numpy as np
import pandas as pdfrom IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"df=pd.DataFrame(np.random.randint(135,210,100),columns=['a']) #创建数据
print('------原始数据------')
df#创建分位数序列
bins=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0] #quantile
indices=np.quantile(df['a'],bins) #返回值为各个分位数的具体值。
print('------quantile算法:返回分位数值------')
indices
输出:
python——numpy——数据分区(digitize,cut,qcut,quantile函数)相关推荐
- Python numpy hstack() vstack() stack() dstack() vsplit() concatenate()函数用法和区别
参考文章:Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
- python numpy中stack(),hstack(),vstack()函数解释
引用 stack()函数axes参数的含义总结起来就是: axes=0:不变 axes=1:次外层矩阵转置 axes=2:次外层矩阵转置,同时次次外层矩阵转置 以此类推. hstack()是次外层水平 ...
- 财务大数据比赛有python吗-Python大数据与机器学习之NumPy初体验
本文是Python大数据与机器学习系列文章中的第6篇,将介绍学习Python大数据与机器学习所必须的NumPy库. 通过本文系列文章您将能够学到的知识如下: 应用Python进行大数据与机器学习 应用 ...
- python numpy读取数据_Python numpy数据的保存和读取
原博文 2019-04-01 16:30 − 在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 Matlab 中我们可以用 save 和 lood 函数很方便的实现 ...
- 真假美猴王-Numpy数据与Python数组的区别与联系
https://www.toutiao.com/a6675926132304380430/ Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到 ...
- python数组和函数的区别_真假美猴王-Numpy数据与Python数组的区别与联系!
Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...
- python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系
Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...
- Python VTK numpy数据3D可视化
在Python的3D图像处理中,通常用numpy array来进行非常方便的计算或者转化,这里记录一下numpy数据的VTK可视化基本流程,包括面绘制(Surfase Rendering)和体绘制(V ...
- Python numpy.digitize函数方法的使用
NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵.NumPy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随 ...
最新文章
- python哪一版好用-Python最好用的编辑器是哪款?北京老男孩教育
- PHP保存Base64图片的问题
- RabbitMQ(三):Exchange交换器--fanout
- WSO2注册表安装简介
- 苹果应用上架,一些信息的勾选(2017年4月27日)
- Transformer靠什么得以闯入CV界秒杀CNN?
- k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
- 等宽分箱_数据分析师-数据挖掘如何分箱以及对箱子中的数据进行平滑处理
- 中芯国际最终超额募资523.2亿元,14nm工艺打“鸡血”了
- 卸任后的马云“忙”坏了,健美大赛、蹦迪、修空调、种蘑菇,真相看懵了
- 软件测试模型-其他模型(W模型|H模型|X模型)
- shell取得文件行数6法
- MAC使用find命令的正确办法
- Awvs 12.x安装教程及常见问题
- vim 命令模式下光标移动
- 计算机网页文档无法复制怎么办,关于电脑浏览器网页不能复制网页文字的恢复教程...
- 苹果手机注册时显示链接服务器出现问题,苹果手机出现连接到服务器时出现问题是什么回事...
- 在法国读计算机研究生的日子开始了
- Ubuntu 安装 XDM 2018 ( Xtreme Download Manager 2018 )
- 让我们恭喜阿根廷队夺得大力神杯
热门文章
- 在荷兰重罚迫使苹果低头后,巴西宣布禁售iPhone,贪婪终受罚
- pc_SDK中文版帮助文档(我的下载中有pdf版的,排好版好,欢迎下载)
- drawio@绘制带有latex公式的图表@示意图@流程图@白板模式whiteboard
- 对于快播王欣审理案中网民舆论一边倒的情况是好是坏?
- Java邮件群发系统
- 公文修改符号及其用法
- Python构造代理IP池提高访问量
- JavaScript 判断 Chrome 内核的 360 浏览器
- 捷联惯导系统学习2.5(等效旋转矢量微分方程的泰勒级数解)
- 如何解决浏览器主页被t999.cn劫持