一、区间划分

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函数)相关推荐

  1. Python numpy hstack() vstack() stack() dstack() vsplit() concatenate()函数用法和区别

    参考文章:Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()

  2. python numpy中stack(),hstack(),vstack()函数解释

    引用 stack()函数axes参数的含义总结起来就是: axes=0:不变 axes=1:次外层矩阵转置 axes=2:次外层矩阵转置,同时次次外层矩阵转置 以此类推. hstack()是次外层水平 ...

  3. 财务大数据比赛有python吗-Python大数据与机器学习之NumPy初体验

    本文是Python大数据与机器学习系列文章中的第6篇,将介绍学习Python大数据与机器学习所必须的NumPy库. 通过本文系列文章您将能够学到的知识如下: 应用Python进行大数据与机器学习 应用 ...

  4. python numpy读取数据_Python numpy数据的保存和读取

    原博文 2019-04-01 16:30 − 在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 Matlab 中我们可以用 save 和 lood 函数很方便的实现 ...

  5. 真假美猴王-Numpy数据与Python数组的区别与联系

    https://www.toutiao.com/a6675926132304380430/ Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到 ...

  6. python数组和函数的区别_真假美猴王-Numpy数据与Python数组的区别与联系!

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  7. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  8. Python VTK numpy数据3D可视化

    在Python的3D图像处理中,通常用numpy array来进行非常方便的计算或者转化,这里记录一下numpy数据的VTK可视化基本流程,包括面绘制(Surfase Rendering)和体绘制(V ...

  9. Python numpy.digitize函数方法的使用

    NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵.NumPy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随 ...

最新文章

  1. python哪一版好用-Python最好用的编辑器是哪款?北京老男孩教育
  2. PHP保存Base64图片的问题
  3. RabbitMQ(三):Exchange交换器--fanout
  4. WSO2注册表安装简介
  5. 苹果应用上架,一些信息的勾选(2017年4月27日)
  6. Transformer靠什么得以闯入CV界秒杀CNN?
  7. k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
  8. 等宽分箱_数据分析师-数据挖掘如何分箱以及对箱子中的数据进行平滑处理
  9. 中芯国际最终超额募资523.2亿元,14nm工艺打“鸡血”了
  10. 卸任后的马云“忙”坏了,健美大赛、蹦迪、修空调、种蘑菇,真相看懵了
  11. 软件测试模型-其他模型(W模型|H模型|X模型)
  12. shell取得文件行数6法
  13. MAC使用find命令的正确办法
  14. Awvs 12.x安装教程及常见问题
  15. vim 命令模式下光标移动
  16. 计算机网页文档无法复制怎么办,关于电脑浏览器网页不能复制网页文字的恢复教程...
  17. 苹果手机注册时显示链接服务器出现问题,苹果手机出现连接到服务器时出现问题是什么回事...
  18. 在法国读计算机研究生的日子开始了
  19. Ubuntu 安装 XDM 2018 ( Xtreme Download Manager 2018 )
  20. 让我们恭喜阿根廷队夺得大力神杯

热门文章

  1. 在荷兰重罚迫使苹果低头后,巴西宣布禁售iPhone,贪婪终受罚
  2. pc_SDK中文版帮助文档(我的下载中有pdf版的,排好版好,欢迎下载)
  3. drawio@绘制带有latex公式的图表@示意图@流程图@白板模式whiteboard
  4. 对于快播王欣审理案中网民舆论一边倒的情况是好是坏?
  5. Java邮件群发系统
  6. 公文修改符号及其用法
  7. Python构造代理IP池提高访问量
  8. JavaScript 判断 Chrome 内核的 360 浏览器
  9. 捷联惯导系统学习2.5(等效旋转矢量微分方程的泰勒级数解)
  10. 如何解决浏览器主页被t999.cn劫持