1 numpy.random.randint()
整数随机,指定上下界,左闭右开
np.random.randint(1, size=10)
>>> array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.random.randint(2, size=10)
>>> array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
np.random.randint(5, size=(2, 4))
>>> array([[4, 0, 2, 1],
[3, 2, 2, 0]])
2 numpy.random.rand()
rand()函数根据给定维度生成 [0,1) 之间的数据,均匀分布
np.random.rand(3,2)
>>> array([[ 0.14022471, 0.96360618],
[ 0.37601032, 0.25528411],
[ 0.49313049, 0.94909878]])
3 numpy.random.randn()
服从标准正态分布~N(0,1)
np.random.randn()
>>> 2.1923875335537315
2.5 * np.random.randn(2, 4) + 3
>>> array([[-4.49401501, 4.00950034, -1.81814867, 7.29718677],
[ 0.39924804, 4.68456316, 4.99394529, 4.84057254]])
4 numpy.random.choice()
numpy.random.choice(a, size=None, replace=True, p=None)
抽样,参数replace用来设置是否可以取相同元素:True表示可以取相同数字;False表示不可以取相同数字。默认是True。
np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0.0])
>>> array([3, 3, 0])
np.random.choice(5) #从[0, 5)中随机输出一个随机数,相当于np.random.randint(0, 5)
>>> 2
np.random.choice(5, 6, replace=True)#可以看到有相同元素
>>> array([3, 4, 1, 1, 0, 3])
np.random.choice(5, 6, replace=False)#会报错,因为五个数字中取六个,不可能不取到重复的数字
>>> ValueError: Cannot take a larger sample than population when 'replace=False'
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
>>> array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], dtype='|S11')
#可以看到,‘pooh’被选取的概率明显比其他几个高很多
5 numpy.random.uniform()
numpy.random.uniform(low,high,size)
从一个均匀分布 [low,high) 中随机采样;
low:采样下界,float 类型,默认值为0;
high:采样上界,float 类型,默认值为1;
size:输出样本数目,为 int 或元组(tuple)类型;
例如,size=(m,n,k),则输出m * n * k个样本,缺省时输出1个值。
6 numpy.random.random()
(0, 1) 的浮点数