美文网首页
19.3.24关于np.random.choice

19.3.24关于np.random.choice

作者: Jarvan_c806 | 来源:发表于2019-03-24 15:02 被阅读0次

    ?np.random.choice
    choice(a, size=None, replace=True, p=None)
    a为一个一维数据或者int的对象
    size为随机选取出后的数据的类型,可以是一维,也可以是二维
    replace=True 代表选取后可以放回,也就是说有可能会出现重复选取的数据
    replace=False 代表选取后不放回,不会出现重复数据
    p为选取的概率

    举例:
    1、关于a和size的变化:
    np.random.choice(5,3)
    np.random.choice(range(5),3)
    这两者随机选取的值在形式上是相同的,选取结果如下:


    微信图片_20190324142955.png

    也就是说,random.choice中的参数a如果为一个int类型,那么会自动生成一个(0,5)的一维数组形式,选取有重复的,是默认replace=True,3为选取的个数。

    当然这种形式也是可以的:


    image.png

    只要a是一个1-D形式

    size也可以变化:
    np.random.choice(10,(3,4))


    image.png

    从0到10的数据中选取出了三行四列的一个二维数据
    注:这中间也会有重复选取的数据

    replace的实例:
    假如:讲上述变化为np.random.choice(10,(3,4),replace=False)


    image.png

    报错,原因是样本数据只有10个,但却要选取出不重复的12个,这显然是不可以的。
    解决方法就是:将样本数据扩大或者选取的样本数减少

    p的概率的实例解释:
    np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
    array([3, 3, 0])
    在(0,5)中选取3个数据,p为概率,
    可理解为:0选取的概率为10%
    1选取的概率为0% 依次类推
    2为30%,3为60%,4为0%
    3被选取的概率最大


    image.png

    注:p概率总和为1
    修改了概率0.8,总和超过了1:


    image.png

    p与replace的变化:
    np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
    以p的概率从0-5中选取3个数据,不重复。
    由于1和4的概率为0,所以无论怎么选取都只会选出0,2,3,只是顺序不同而已


    image.png

    选取数据为4,报错的原因也很容易理解了


    image.png

    选取3个后剩下的选取概率为0,第4个数据就无法被选取出来了。

    相关文章

      网友评论

          本文标题:19.3.24关于np.random.choice

          本文链接:https://www.haomeiwen.com/subject/fpruvqtx.html