numpy和pandas的数据乱序
import numpy as np
import pandas as pd
import sklearn
import urllib
import os
import tarfile
数据乱序
我们分别介绍numpy.ndarray和pandas.dataframe的乱序。
numpy.ndarray
拆分前,一般会先对数据进行随机排序。
numpy.random中有shuffle()和permutation()2个函数均可用于对数据进行乱序。主要区别在于:
- shuffle()直接对原数据进行重排,无返回值。
- permutation()复制原数据,然后再重排,返回重排后的数组。原数据没有任何变化。
生成数据:
data = np.arange(100).reshape(10,-1)
print(data)
[[ 0 1 2 3 4 5 6 7 8 9][10 11 12 13 14 15 16 17 18 19][20 21 22 23 24 25 26 27 28 29][30 31 32 33 34 35 36 37 38 39][40 41 42 43 44 45 46 47 48 49][50 51 52 53 54 55 56 57 58 59][60 61 62 63 64 65 66 67 68 69][70 71 72 73 74 75 76 77 78 79][80 81 82 83 84 85 86 87 88 89][90 91 92 93 94 95 96 97 98 99]]
使用permutation()重排:
x = np.random.permutation(data)
print(x)
print(data)
[[50 51 52 53 54 55 56 57 58 59][70 71 72 73 74 75 76 77 78 79][40 41 42 43 44 45 46 47 48 49][90 91 92 93 94 95 96 97 98 99][20 21 22 23 24 25 26 27 28 29][10 11 12 13 14 15 16 17 18 19][30 31 32 33 34 35 36 37 38 39][80 81 82 83 84 85 86 87 88 89][60 61 62 63 64 65 66 67 68 69][ 0 1 2 3 4 5 6 7 8 9]]
[[ 0 1 2 3 4 5 6 7 8 9][10 11 12 13 14 15 16 17 18 19][20 21 22 23 24 25 26 27 28 29][30 31 32 33 34 35 36 37 38 39][40 41 42 43 44 45 46 47 48 49][50 51 52 53 54 55 56 57 58 59][60 61 62 63 64 65 66 67 68 69][70 71 72 73 74 75 76 77 78 79][80 81 82 83 84 85 86 87 88 89][90 91 92 93 94 95 96 97 98 99]]
使用shuffle()重排:
np.random.shuffle(data)
print(data)
[[40 41 42 43 44 45 46 47 48 49][20 21 22 23 24 25 26 27 28 29][50 51 52 53 54 55 56 57 58 59][80 81 82 83 84 85 86 87 88 89][30 31 32 33 34 35 36 37 38 39][ 0 1 2 3 4 5 6 7 8 9][60 61 62 63 64 65 66 67 68 69][10 11 12 13 14 15 16 17 18 19][90 91 92 93 94 95 96 97 98 99][70 71 72 73 74 75 76 77 78 79]]
pandas.dataframe
对datafame进行乱序,只需要使用sample()即可。
我们使用iris数据集生成datafame:
from sklearn import datasets
iris = datasets.load_iris()
df = pd.DataFrame()
df['heigh'] = iris['data'][:,0]
df['length'] = iris['data'][:,1]
df['label'] = iris['target']print(df.head())
heigh length label
0 5.1 3.5 0
1 4.9 3.0 0
2 4.7 3.2 0
3 4.6 3.1 0
4 5.0 3.6 0
sample()方式
我们使用sample对df进行shuffle。我们可以看到df自身是没有变化的:
df_shuffle = df.sample(frac=1)
print(df_shuffle.head())
print(df.head())
heigh length label
40 5.0 3.5 0
80 5.5 2.4 1
55 5.7 2.8 1
96 5.7 2.9 1
108 6.7 2.5 2heigh length label
0 5.1 3.5 0
1 4.9 3.0 0
2 4.7 3.2 0
3 4.6 3.1 0
4 5.0 3.6 0
参数frac是要返回的比例。如果需要打混后数据集的index(索引)还是按照正常的排序:
df_shuffle2 = df.sample(frac=1).reset_index(drop=True)
print(df_shuffle2.head())
heigh length label
0 7.7 2.6 2
1 6.5 3.2 2
2 5.6 2.8 2
3 4.6 3.6 0
4 7.4 2.8 2
sklearn的方式
sklearn.utils.shuffle()也可以对datafame乱序:
df_shuffle3 = sklearn.utils.shuffle(df)
print(df_shuffle3.head())
heigh length label
88 5.6 3.0 1
17 5.1 3.5 0
7 5.0 3.4 0
132 6.4 2.8 2
67 5.8 2.7 1
numpy的方式
不推荐此方式
df_shuffle4 = df.iloc[np.random.permutation(len(df))]
print(df_shuffle4.head())
heigh length label
130 7.4 2.8 2
144 6.7 3.3 2
110 6.5 3.2 2
99 5.7 2.8 1
143 6.8 3.2 2
numpy和pandas的数据乱序相关推荐
- fastjson解析JSON数据乱序导致的问题
本文作者:合肥工业大学 电子商务研究所 钱洋 email:1563178220@qq.com . 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 问题背景 问题解决 完整的案例代码 ...
- Flink Checkpoint 机制:如何保证 barrier 和数据之间不乱序?
Flink Checkpoint 机制:如何保证 barrier 和数据之间不乱序? 1 前言 1.1 什么是 state? 要说 checkpoint,首先要从 state 聊起.之前有被问到对于 ...
- 浅析LET无线移动网络为什么RTT抖动大为什么数据包乱序多
浙江温州皮鞋湿,下雨进水不会胖!9月份错过了深圳的超猛台风,12月8号又错过了杭州的超猛大雪,当天却在深圳迎来了赵正则,马上2019年了,又一次错过了杭州的大雪,回到了深圳过元旦- 无奈啊无奈,去年夏 ...
- 用Numpy和Pandas分析二维数据笔记
用Numpy和Pandas分析二维数据 上节课,我们利用numpy和pandas分析了一维数据.在这节课中,你将学到这两种库的更多特性.并用它们来分析 二维数据,这节课后,你将能够使用pandas重新 ...
- 数据基础---numpy、pandas使用教程
数组对象 Numpy库 Numpy最重要的一个特点是就是其N维数组对象,即ndarray,ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的.每个数组都有一个shape(一个表 ...
- 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠
在做数据包分析的时候,经常会说一句话,"Packets never lie(数据包不会说谎)",即数据包会真实反应网络服务和应用服务的真实状态.基于网络镜像的流量分析同样如此,如果 ...
- Numpy 生成随机数和乱序
Numpy 生成随机数和乱序 Numpy官网:http://www.numpy.org/ 一.生成随机数 1. numpy.random.rand(d0, d1, -, dn) 生成在 [0, 1) ...
- Pentium M处理器架构/微架构/流水线 (2) - 数据预取/乱序核/退役单元
Data Prefetching Intel Pentium M处理器支持3种预取机制: 第一种是硬件指令预取,已在上面章节中讲述 第二种是自动的将数据预取到二级缓存.这个机制基本上与Intel Ne ...
- pandas 转化np数据_python,numpy,pandas数据处理之小技巧
今日是端午4天假期的最后一天,自己的2台电脑一台在处理数据,另一台电源适配器也坏掉了.感觉闲来无事,在此就简单聊聊numpy和pandas的各种冷知识.小技巧和疑难杂症.个人觉得关于 这里就着重聊聊一 ...
最新文章
- gdal 1.9+python 2.7开发环境配置
- jdbc mysql参数_Mysql JDBC URL中的重要参数有啊些
- Android Service 服务(二)—— BroadcastReceiver
- Golang 入门笔记(二)上
- android dropbox切换账户,android – 如何获取我的APP_KEY和SECRET_KEY的Dropbox同步?
- 奇偶个数 中国大学生mooc 翁恺 C语言
- 洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
- smtp邮件服务器配置,配置电子邮件通知和指定 SMTP 服务器
- 淘客APP开发定制系统推荐
- cad多段线画圆弧方向_CAD多段线绘制技巧 - CAD自学网
- 微博缓存视频导出自行解决方案
- 如何将瀚高数据库单机数据导入HGDW
- 常用的人格测试理论等小结
- 强大的第三方视频播放器。
- 2023款ThinkBook 14和15锐龙版区别对比评测选哪个好
- 如何注册和设置 zoom Background
- C: 重复宏定义warning: “A“ redefined
- 大象进冰箱和软件设计的关联性
- LINUX学习—AWK(LINUX三剑客)
- 计算机的移动硬盘,学会九招不再犯愁!移动硬盘使用中心得体会
热门文章
- [leetcode] 144.二叉树的前序遍历
- @EnableTransactionManagement原理
- OSPF动态路由协议(了解ospf,RIP协议,外部网关协议内部网关协议,ospf工作过程,选举过程,ospf邻居关系7个状态)
- 内网端口转发-LCX基本使用
- 面向对象的4个基本特征
- JLabel标签文字换行
- flask查询mysql数据展示_flask再学习-思考之怎么从数据库中查询数据在页面展示!...
- python硬件交互_对Python的交互模式和直接运行.py文件的区别详解
- c语言常量x,C语言的数据、常量和变量
- 4g模块注册上网 移远_通信模组企业 移远通信amp;广和通