random模块常用函数介绍
random是numpy中超好用的随机数模块,在数据分析中,我们不可避免需要一些随机值,如果自己手动输入,不仅不方便,还不随机。现在我们来一起学习一下这个模块。
简单随机数
-
传入的参数是指定输出的矩阵的shape,数组的元素的取值范围是在[0,1)的左闭右开的浮点数。
np.random.rand(3,2)
每一次执行都能得到不同的值。
-
传入的参数是指定矩阵shape,不传默认返回一个随机值。返回的元素是来自标准正态分布(均值0和方差1)的浮点数。
np.random.randn(2,2)
-
返回[low,high)的“离散均匀”分布的随机整数,矩阵的形状由size指定。如果不给high的值,那么数值默认是从[0,low)取值。size可以是int或者int元祖,若是不给出,则默认返回一个随机值。
np.random.randint(3,size=3) np.random.randint(3,7,size=(3,2))
-
返回一个在[0.0,1.0)左闭右开区间内连续均匀分布的随机浮点数。 和rand的区别是rand传入的维度是各个维度之间用逗号隔开,而random_sample的size则是传入一个元组。
np.random.random_sample((4,2)) 5 * np.random.random_sample((3, 2)) - 5
-
从给定的一位数组中生成随机样本。 其中还可以给定数组a中每个元素的相关概率,若是不给出,则默认所有元素都是在a中均匀分布的。
a = [特等奖,一等奖,二等奖,三等奖,谢谢惠顾] np.random.choice(a,(6,)) np.random.choice(a,(6,),p=[0.01,0.1,0.15,0.2,0.54])
注意:当出现以下情况,会报ValueError: a是一个数字,并且a小于0 a或者p不是一维的 a是一个空数组 p不是概率向量 a和p的长度不一致 当replace=False(默认是True)时,样本量(size指定的值)大于总体数量(a)大小
洗牌
-
直接打乱该序列的内容,没有返回值。
(频数或频率的)分布
-
从逻辑分布中抽取样本。 样本是从具有指定参数,loc(位置或均值,也为中位数)和scale(>0)的逻辑分布中抽取的。 逻辑分布的概率密度公式: 从正态(高斯)分布中抽取随机样本。默认均值是0.0,标准差是1.0。 正态分布概率密度: 从标准正态分布中抽取随机样本,这个就是normal的一个默认值特例。 从均匀分布中抽取样本。样本均匀分布在[low.high)左闭右开区间。low默认值是0.0,high默认值是1.0 均匀分布的概率密度函数: uniform的抽样和前面简单随机数的几个函数很相似,但是前面是返回0-1范围内的值,uniform函数可以自己指定数据变化范围。
随机数种子
当我们做数据分析,还有数据建模时,可能要通过调节参数值使模型更准确,但是用random模块每次数据都不一样,若是想保证在本次调节时样本数据一致,可使用seed函数。 当在同一个种子下,不管执行几次,得到的结果都是一样的。 另外,这个产生的随机数都是多位小数,如果你觉得看起来很累,可以设置自己想要精确到什么小数位。
np.set_printoptions(precision=2) # precision=2表示保留两位小数 array1= np.random.rand(4) array1
如果你还有想了解random模块的其他函数,可以查看官方文档: 好了,本文到这里就结束了,希望你对random模块有所了解。 感谢您的阅读~
