Numpy随机数
np.random随机数子库
1: 基本函数
.rand(d0,d1,..dn)
:创建d0-dn维度的随机数数组,浮点数,范围从0-1,均匀分布.randn(d0,d1,..dn)
:功能同上,区别:范围不定,标准正态分布.randint(low,high,(shape))
:根据shape创建随机整数或整数数组,范围是low,high,形状是shape.seed(s)
:随机数种子,s是给定的种子值,通过设定相同的随机数种子,可以每次生成相同的随机数
import numpy as np a = np.random.rand(3,4,5) a sn = np.random.randn(3,4,5) sn b = np.random.randint(100,200,(3,4,5)) b np.random.seed(10) np.random.randint(100,200,(3,4)) np.random.seed(10) np.random.randint(100,200,(3,4)) #相同的种子,相同的随机数
2:高级函数
shuffle(a)
:将数组a的第0轴(最外维度)进行随机排列(洗牌),改变数组apermutation(a)
:同上,区别是不改变数组a.choice(a, size=None, replace=True, p=None)
:从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False,p为抽取概率
import numpy as np np.random.seed(10) a = np.random.randint(100,200,(3,4)) a #数组最外一层维度数据发生变化 np.random.shuffle(a) a np.random.permutation(a) a #变量不变 np.random.seed(10) b = np.random.randint(100,200,(8,)) b np.random.choice(b,(3,2)) #将一维数组内数据抽取转为3行2列数组 np.random.choice(b,(3,2),replace=False) #不重复抽取值 np.random.choice(b,(3,2),p=b/np.sum(b)) #p为抽取概率,本位置值越大,抽取概率越高