前言:
现在咱们对“python随机排序”大约比较看重,看官们都需要了解一些“python随机排序”的相关知识。那么小编同时在网上网罗了一些对于“python随机排序””的相关文章,希望我们能喜欢,我们一起来学习一下吧!「目录」
数据清洗和准备
Data Cleaning and Prepration
7.1 => 处理缺失数据7.2 => 数据转换
--------> 移除重复数据
--------> 利⽤函数或映射进行数据转换
--------> 替换值
--------> 重命名轴索引
--------> 离散化和面元划分
--------> 检测和过滤异常值
--------> 排列和随机采样
7.3 => 字符串操作
排列和随机采样
今天这篇笔记呢更新原书排列和随机采样的部分,涉及到了以下几个函数:
numpy.random.permutation()DataFrame.take()DataFrame.sample()
利用numpy.random.permutation函数可以轻松实现对Series或DataFrame的行rows进行排列。
通过调用permutation并传入axis轴的长度,会产生一组表示新顺序的整数数组:
In [1]: import pandas as pdIn [2]: import numpy as npIn [3]: df = pd.DataFrame(np.arange(5*4).reshape((5,4)))In [4]: sampler = np.random.permutation(5)In [5]: samplerOut[5]: array([3, 4, 2, 1, 0])
然后可以在take函数中使用该数组。
In [6]: dfOut[6]: 0 1 2 30 0 1 2 31 4 5 6 72 8 9 10 113 12 13 14 154 16 17 18 19In [7]: df.take(sampler)Out[7]: 0 1 2 33 12 13 14 154 16 17 18 192 8 9 10 111 4 5 6 70 0 1 2 3
原书没有多讲几句关于take函数的作用,稍微补充一下哈。
take函数会沿轴返回给定位置的元素,注意是给定位置哦。
In [17]: data = pd.DataFrame(np.arange(6*4).reshape((6, 4)), index=['One', 'Two', 'Three', 'Four', 'Five', 'Six'], columns=['A', 'B', 'C', 'D'])In [18]: dataOut[18]: A B C DOne 0 1 2 3Two 4 5 6 7Three 8 9 10 11Four 12 13 14 15Five 16 17 18 19Six 20 21 22 23#选取第0,2,4行In [19]: data.take([0, 2, 4])Out[19]: A B C DOne 0 1 2 3Three 8 9 10 11Five 16 17 18 19#选取第0,3列In [21]: data.take([0,3], axis=1)Out[21]: A DOne 0 3Two 4 7Three 8 11Four 12 15Five 16 19Six 20 23
在DataFrame上使用sample方法可以选取随机子集:
In [8]: df.sample(n=3)Out[8]: 0 1 2 33 12 13 14 150 0 1 2 31 4 5 6 7
记得概率课上的摸球实验吗,现在假如有5个球,编号分别为5,7,-1,6,4,现在传入n=10表示摸10次,replace=True代表可以重复选择(摸完后放回):
In [9]: choices = pd.Series([5, 7, -1, 6, 4])In [10]: draws = choices.sample(n=10, replace=True)In [11]: drawsOut[11]:0 52 -13 64 42 -10 53 61 70 51 7dtype: int64
这么解释很形象吧。
这篇结束了,BYE-BYE,下篇见吧。
标签: #python随机排序