Pandas+Numpy+Sklearn 随机取数
![Pandas+Numpy+Sklearn随机取数](https://static001.geekbang.org/infoq/c1/c1fc35fe550a61029764ec1bc30cb6b6.png)
公众号:尤而小屋<br>作者:Peter<br>编辑:Peter
大家好,我是 Peter~
本文记录的是如何使用 Python、pandas、numpy、scikit-learn 来实现随机打乱、抽取和切割数据。主要的方法包含:
sample
shuffle
np.random.permutation
train_test_split
![](https://static001.geekbang.org/infoq/8e/8ec29572351ee24d3874e7df8f0e580b.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
导入数据
In [1]:
复制代码
内置数据
采用的是 plotly 库中内置的一份消费数据集:
In [2]:
复制代码
![](https://static001.geekbang.org/infoq/98/98884cd0883814da48c162b38f479e2a.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
基本信息
In [3]:
复制代码
Out[3]:
复制代码
In [4]:
复制代码
Out[4]:
复制代码
sample 实现
行方向
In [5]:
随机抽取一行记录:
复制代码
![](https://static001.geekbang.org/infoq/f1/f1ee619ca1153c13e577674d1cd7fe22.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
随机抽取多行数据:
![](https://static001.geekbang.org/infoq/f8/f87eeb1ffaf80af8f550930e354df3c2.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
通过参数 frac 实现按照比例随机抽样:
复制代码
![](https://static001.geekbang.org/infoq/db/dbc09c7a1d779264a41dee25d821425f.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
列方向
主要是选择不同数量或者比例的属性;整体的行数量是不变的
In [8]:
复制代码
![](https://static001.geekbang.org/infoq/23/23bbade94d3ff99273207c873e30af02.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
shuffle 实现
scikit-Learn 的 shuffle
In [9]:
复制代码
In [10]:
复制代码
![](https://static001.geekbang.org/infoq/18/184a6b723f25e5c49c4419a190ff07c1.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
random 模块的 shuffle
In [11]:
复制代码
Out[11]:
复制代码
In [12]:
复制代码
In [13]:
复制代码
Out[13]:
复制代码
In [14]:
复制代码
![](https://static001.geekbang.org/infoq/dd/ddfc37ca39ce933ac872177ffe7a3a67.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
numpy 实现
In [15]:
复制代码
Out[15]:
复制代码
In [16]:
复制代码
![](https://static001.geekbang.org/infoq/d7/d7538f98f7c38bb01c682ac27627d1e0.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
train_test_split 实现
复制代码
In [18]:
第一份数据是 80%的:
复制代码
![](https://static001.geekbang.org/infoq/6b/6ba18f68d34ff511a333f7e2891811c8.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
剩余的 20%的数据:
![](https://static001.geekbang.org/infoq/df/dfb52bf5c3c799e0734a657d651b37fc.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
版权声明: 本文为 InfoQ 作者【Peter】的原创文章。
原文链接:【http://xie.infoq.cn/article/4342edc05a5dc437ff162a6dc】。文章转载请联系作者。
评论