Python每日小结(七)
来源:互联网 发布:经典书籍推荐知乎 编辑:程序博客网 时间:2024/05/22 14:59
1.random.choice与random.sample
Python标准库中的random模块,可以生成随机浮点数、整数、字符串,甚至帮助我们随机选择列表序列中的一个元素,打乱一组数据等。
下面我们主要关注random.choice函数与random.sample函数。
random.choice(seq):
从一个非空序列中随机返回一个元素,比如:
import randomlists=[1,2,3,4,5,6]for _ in range(3):print random.choice(lists)运行结果:
random.sample(population,k):
从一个population sequence中返回一个长度为k的list,该list中的元素是不同的。注意,这里说的不同是指不是population sequence中的同一个元素,举例如下:
import randomlists=[1,2,3,4,5,6]lists2=[2,2,3,4,5,6]for _ in range(3):print random.sample(lists,3)for _ in range(3):print random.sample(lists2,3)运行结果:
最后一行中的2,2并不是原始集合中的同一个2,可以理解为不放回采样,要是有同位素标记就好了......
2.numpy.random
科学计算库NumPy中也有random,与上面不太一样,下面我将对NumPy.random中的choice和sample函数进行介绍。
numpy.random.choice(a,size=None,replace=True,p=None):
从给定的一维数列(1-D array)中产生样本,该函数可以一次抽取多个样本,这与random模块中的choice不同。该函数的参数列表释义如下:
a:传入的一维数列或int,如果是int,则从np.arange(a)中进行随机采样;
size:输出的样本集合的shape,类型为int或tuple或ints,如果我们给定了该参数为(m,n,k),则该函数将会采样m*n*k个样本,如果该参数为None,则选取一个样本;
replace:是否为放回采样,True表示有放回,False表示无放回;
p:a中每项所对应的采样概率,如果未给定该函数,则表示均匀采样。
下面给出运行示例:
from numpy import randomlists=[1,2,3,4,5,6]print random.choice(lists,size=[2,3],replace=True)print random.choice(lists,size=[2,3],replace=False)运行结果:
上面给出了replace参数取True和False时的对比,通过这个实验,该参数的意义也就明确了很多。那如果我们传入replace=False,同时size比原始array要大会发生什么呢?
from numpy import randomlists=[1,2,3,4,5,6]print random.choice(lists,size=[2,4],replace=False)运行结果:
啊哦,报错了,不过这也在我们的推测之中。
下面介绍numpy.random.sample()函数:
numpy.random.sample(size=None):
该函数返回半开区间[0.0,1.0)之间的随机浮点数。
size:输出的shape,与上面的numpy.random.choice()函数中的size参数一致。
那Python标准库的random模块与numpy.random有什么区别呢?
Python标准库的random模块处理的对象类型更宽泛一些,并不局限于数(int,float等),还可以是字符串等类型。而numpy.random则专门用于处理数学数据,所以传入的为array,这与NumPy库本身的初衷也很一致。
- Python每日小结(七)
- Python每日小结(一)
- Python每日小结(二)
- Python每日小结(三)
- Python每日小结(四)
- Python每日小结(五)
- Python每日小结(六)
- Python每日小结(八)
- Python每日小结(九)
- Python每日小结(十)
- Python每日小结(十一)
- 每日一题(七)
- Linux每日学习(七)
- 每日英语阅读(七)
- 每日小结
- 每日小结
- 每日小结
- 每日小结
- 简单工厂模式
- 微信小程序 —— web-view组件配置及使用
- 日常问题总结(12)
- JS中的基本数据类型和引用数据类型
- 通常ERP之:物料需求计划MRP与主生产计划
- Python每日小结(七)
- layer 弹层WEB
- JS window.open打开新窗口,并居中
- 【转载】Python函数参数默认值的陷阱和原理深究
- RGB颜色如何转变成16进制颜色
- 技能知识整理
- python设计模式(观察者模式)
- 来自麻省理工的信息抽取
- 用qt和seetaface制作人脸识别程序的准备工作备忘