分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!...
前言
数据排序、分类变量转换是数据处理与分析中常常遇到对场景,且需要有准确的判断以及准确的处理方式,否则会影响数据质量,产生脏数据,进而影响数据呈现效果或预测效果等,更别提机器学习与深度学习准确性等系列问题。小编接下来会针对python方法在该场景的应用做具体介绍。
排列和随机采样
利用numpy.random.permutation函数可以轻松实现对Series和DataFrame的列的排列工作(permuting,随机重排序)。通过需要排列的轴的长度调用permutation,可产生一个表示新顺序的整数数组:
1.使用permutation()进行排列
我们先使用DataFrame创建一个5行4列的数据集,然后使用numpy.random.permutation函数进行重新排序,具体如下:
2.使用take函数对数据集进行重排序
通过下面对例子可以清楚理解take函数对作用。sampler是np.random.permutation()生成对随机数组,然后将这个对象传入到take函数中,作用于对象数据集,具体如下所示:
In [8]: df
Out[8]: 0 1 2 3
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19In [9]: df.take(sampler)
Out[9]: 0 1 2 3
0 0 1 2 3
1 4 5 6 7
4 16 17 18 19
3 12 13 14 15
2 8 9 10 11
如果不想用替换的方式选取随机子集,则可以使用permutation:从permutation返回的数组中切下前k个元素,其中k为期望的子集大小。
In [10]: df.take(np.random.permutation(len(df))[:3])
Out[10]: 0 1 2 3
3 12 13 14 15
2 8 9 10 11
0 0 1 2 3
3.获取随机整数:np.random.randint
要通过替换的方式产生样本,最快的方式通过np.random.randint得到一组随机整数:
In [11]: ba=np.array([5,7,-1,6,4])
In [12]: ba
Out[12]: array([ 5, 7, -1, 6, 4])
In [13]: sampler=np.random.randint(0,len(ba),size=10)
In [14]: sampler
Out[14]: array([1, 3, 1, 3, 1, 2, 3, 4, 2, 0])
In [15]: draws=ba.take(sampler)
In [16]: draws
Out[16]: array([ 7, 6, 7, 6, 7, -1, 6, 4, -1, 5])
计算指标/哑变量
另一种常用于统计建模或机器学习的转换方式是:将分类变量转换为“哑变量矩阵”或“指标矩阵”。如果DataFrame的某一列中含有k个不同的值,则可以派生出一个k列矩阵或DataFrame(其值权威1和0).pandas有一个get_dummies函数可以实现该功能。
In [17]: df=DataFrame({'key':['b','b','a','c','a','b'],'data1':range(6)})
In [18]: df
Out[18]: key data1
0 b 0
1 b 1
2 a 2
3 c 3
4 a 4
5 b 5
In [19]: df['key']
Out[19]:
0 b
1 b
2 a
3 c
4 a
5 b
Name: key, dtype: object
使用get_dummies()将分类变量转换为“哑变量矩阵”
In [20]: pd.get_dummies(df['key'])
Out[20]: a b c
0 0 1 0
1 0 1 0
2 1 0 0
3 0 0 1
4 1 0 0
5 0 1 0
总结
数据处理与分析的方法丰富且场景复杂,针对不同的应用情况,选择适合的方法是最恰当且能解决实际问题的。希望大家从中有所收益,实践中多体会和沉淀,感谢大家支持!记得关注哦!
分类变量 哑变量矩阵 指标矩阵_不懂数据集重排序?分类变量转换苦难?4种python方法,不再难!...相关推荐
- 二重积分转换成极坐标_极坐标变换计算二重积分中积分限转换的一种简单方法...
孙茜 [摘要]在用极坐标变换法计算二重积分时,对于如何转换积分限是难点,本文提出了一种容易理解和掌握的方法. [关键词]极坐标:二重积分:转换 二重积分的计算通常是在直角坐标系中进行,对于被积函数含有 ...
- 数学猜想验证步骤_高中数学解题思路与技巧汇总,19种解题方法,实用!
解数学题,除了掌握有关的数学知识之外,最好掌握一定的解题技巧甚至知道点解题思想.要知道高考试题的解答过程中蕴含着重要的数学思想方法,如果能有意识地在解题过程中加以运用,势必会取得很好的效用.下面邦德华 ...
- python 字符串拼接_面试官让用 3 种 python 方法实现字符串拼接 ?对不起我有8种……...
点击上方 蓝字关注我们 点击上方"印象python",选择"星标"公众号重磅干货,第一时间送达!之前发过很多关于 Python 学习的文章,收到大家不少的好评, ...
- arcgis导入excel数据_导入Excel数据到ArcGIS属性表的两种实用方法
导入Excel数据到ArcGIS有两种方法,一种是用ArcMap的加载数据(黄色+号那个):另一种是用ArcCatalog直接转为shp文件,两种方法的原理是一样的. 第一种方法 1.Excel数据: ...
- 面具卡米怎么删模块_面具magisk ROOT如何更新到最新版本两种实用方法彻底解决...
面具magisk作者会不定期的更新维护magisk,对magisk的升级维护,以便支持更多的安卓设备.目前已知最新版magisk已支持安卓11系统,对于已经刷入面具root的小伙伴,怎么最快速的升级最 ...
- aspen plus冷凝器_软件 |第五讲:图解Aspen V8.8,让流程模拟不再难
Aspen Plus V8.8 以方便的EDR经济核算.更稳定的运行特性等优势在化工设计中得到广泛应用.奈何,软件的更新速度超过了教程的更新速度,很多初学者看着aspen v8.8模拟软件的陌生界面, ...
- ML:基于葡萄牙银行机构营销活动数据集(年龄/职业等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格/随机搜索+推理)客户是否购买该银行的产品二分类案
ML之pipeline:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格搜索/随机搜索+模型 ...
- R语言使用两个分类变量创建双向表(Two Way Table、两个分类变量的频率表)实战: 矩阵的双向表、dataframe的双向表、条形图和马赛克图来可视化频率表
R语言使用两个分类变量创建双向表(Two Way Table.两个分类变量的频率表)实战: 矩阵的双向表.dataframe的双向表.条形图和马赛克图来可视化频率表 目录
- matlab 向量变标量,MATLAB变量——标量,向量,矩阵
MATLAB变量--标量,向量,矩阵 MATLAB以NM×的形式保存了大量的矩阵,其中M是行数,N是列数.一个1×1矩阵是一个标量:1×N矩阵是一个行向量,,M×1矩阵是一个列向量.矩阵的全部元素可以 ...
最新文章
- Nutch URL过滤配置规则
- oracle mysql sql serve where in 语句的不同
- 对科目***货币 ***未定义汇率差额科目
- Objective-C开发编码规范
- 【Go语言】集合与文件操作
- RHEL 8 - 安装 webconsole
- access两位小数不进位_人教版小学数学三年级下册笔算乘法(不进位)公开课优质课课件教案视频...
- 06 is和==的区别 encode()编码 decode()解码
- 身为管理者 会讲的六十八个故事
- 高级软件测试人员考核指标,软件测试人员绩效考核详细-20210406011350.docx-原创力文档...
- SQL解密ctext字段内容函数
- mysql免安装_MySQL免安装版配置教程
- 借一篇论文了解重要性采样
- BLE_BQB Test_Intermodulation Performance, uncoded data at 1 Ms/s_RF-PHY/RCV/BV-05-C
- python|解决Cannot open D:\python\Anaconda\envs\tensorflow\Scripts\pip-script.py(重装pip)
- 拼多多一晚被薅千万,倒赚276亿:一次蓄意营销的阴谋?
- SQL处理库存与销售,先进先出原则
- [讨论]一个真正的IT人来谈中国与印度的软件
- Spring学习手札(三)理解IoC 拯救不开心
- Linux Shell Shock漏洞利用和实战
热门文章
- 超出网络bios会话限制_什么是UEFI,它和BIOS有什么不同?
- 潍坊市计算机专业招聘,潍坊市工业学校计算机专业介绍
- oracle如果为空替换为0,oracle 如何把0转为null
- formdata传参java用对象怎么接受_Java基础4
- Python 列表的应用场景有哪些?你使用对了吗?
- python中的set函数、列表的操作
- python 利用matplotlib中imshow()函数绘图
- python中super的用法实例解析
- 10 不自动断开 设置wlan_WiFi和WLAN,还傻傻分不清?
- 计算机弹奏两只老虎爱跳舞,原神风物之诗琴乐谱大全