整数随机,指定上下界,左闭右开
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]])rand()函数根据给定维度生成 [0,1) 之间的数据,均匀分布
np.random.rand(3,2) >>> array([[ 0.14022471, 0.96360618], [ 0.37601032, 0.25528411], [ 0.49313049, 0.94909878]])服从标准正态分布~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]])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’被选取的概率明显比其他几个高很多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个值。