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]: 表示第三个数有着更大的概率被挑选出来'
可以看到,该函数的使用是非常简单的。其实根本就没有记录的必要,但是该功能的出现确实省了不少事,所以给予它足够的尊重,故记录于此。