np.random.choice 使用小结

最近在实现某个功能的时候,用到了np.random.choice这个函数。特此记录一下,以免日后忘记。它的功能就是从给定的一个1-D数组中以某种概率随机抽取D个数。函数的定义如下

choice(a, size=None, replace=True, p=None)
  • a: 给定的一维数组且必须是一维数组。可以有两种给值,
    • 给定一个数组,例如a=[1,2,3,4]
    • 给定一个正值,此时就相当于从列表np.arange(a)中随机抽取D个整数
  • size: 表示想要得到的数的个数,
    • 如果size=3,表示得到3个数。
    • 如果size=(3,2),表示得到3*2个数,且形状为3*2
  • replace: 表示是否重复选取,默认表示可以重复选择.
  • p: 表示列表中某数被选取的概率,默认为正态分布

介绍了相关的参数后,接下来就开始上一些demo来加深记忆

import numpy as np
x = np.random.choice(6, 3, replace=True, p = None)
'结果:[9 0 2]'
'size 变成 (3,2)时'
x = np.random.choice(10, (3, 2), replace=True, p = None)
'''
结果:
[[9 4]
 [8 7]
 [0 3]]'''

'replace = True: 可能产生[3 4 4]'
'replace = False: 产生[1 2 5],不可能出现重复值'
x = np.random.choice(6, 3, replace=False, p=[0.1, 0.1, 0.5, 0.1, 0.1, 0.1])
'结果:[0 3 2]'
'p=[0.1, 0.1, 0.5, 0.1, 0.1, 0.1]: 表示第三个数有着更大的概率被挑选出来'

可以看到,该函数的使用是非常简单的。其实根本就没有记录的必要,但是该功能的出现确实省了不少事,所以给予它足够的尊重,故记录于此。

posted @ 2020-10-30 23:20  Tingwei_chen  阅读(924)  评论(0编辑  收藏  举报