np.random模块用法 您所在的位置:网站首页 random用法英语 np.random模块用法

np.random模块用法

2022-11-29 04:09| 来源: 网络整理| 查看: 265

np.random.choice(a, size=None, replace=True, p=None)

从数列a中随机选择size个元素,replace为True表示选出的元素允许重复。p为元素被选中的概率数列

a = np.arange(10) n1 = np.random.choice(a,5) n2 = np.random.choice(a,5,replace=False) print(a),print(n1),print(n2) [0 1 2 3 4 5 6 7 8 9] [6 7 2 8 6] [7 5 0 1 2]

2. np.random.rand(d0, d1, ..., dn)

产生维度为(d0, d1, ..., dn),值属于[0,1)的正太分布

np.random.rand(2,5) array([[0.76591557, 0.51328605, 0.6392731 , 0.29288276, 0.06521177], [0.95525581, 0.45215736, 0.99532118, 0.59897804, 0.52397141]])

3. np.random.randint(low, high=None, size=None, dtype='l'))

产生属于[low,high)的size数量的离散均匀分布,默认数据类型为http://np.int。

如果high为None,则产生属于[0,low)的离散均匀分布

size值可以为数值(产生结果为一维),也可以为list或者tuple(产生结果为二维或者多维)

np.random.randint(0,10,5) array([0, 8, 7, 8, 9]) np.random.randint(0,10,(2,5)) array([[4, 8, 3, 3, 8], [8, 3, 2, 5, 7]]) np.random.randint(2,size=10) array([1, 0, 0, 0, 1, 1, 1, 1, 1, 1])

4. np.random.randn(d0, d1, ..., dn)

产生维度为(d0, d1, ..., dn)的标准正太分布。同np.random.standard_uniform(),这两个函数功能相同,只是参数写法不同

标准正态分布又称为u分布,是以0为均数、以1为标准差的正态分布(mean=0, stdev=1),记为N(0,1)

np.random.randn(2,5) array([[-1.07605751, 0.31317055, -0.22755171, 1.20909518, -2.19104446], [-0.55637002, -0.22598989, 0.33682028, -1.37535475, -1.39989454]])

5. np.random.random(size=None)

产生属于[0.0, 1.0)的size数量的连续均匀分布。size为list或者tuple时,产生相应维度的结果。

np.random.random(10) array([0.45979962, 0.07389054, 0.85423248, 0.61159321, 0.78287086, 0.31949009, 0.88003128, 0.10564087, 0.56007537, 0.29680522]) np.random.random((2,5)) array([[0.71928472, 0.54064274, 0.63533293, 0.97539174, 0.55841619], [0.25635754, 0.19995146, 0.28321707, 0.07126725, 0.6354949 ]])

6. np.random.random_sample(size=None)

同:np.random.random(size=None)

7. np.random.sample(size=None)

同:np.random.random(size=None)

8.np.random.standard_normal(size=None)

同:np.random.randn(d0, d1, ..., dn),参数形式不同

np.random.standard_normal((2,5)) array([[ 0.9860204 , -0.01338097, -2.35422435, -0.46540609, 1.86221193], [-0.52405505, 0.07280193, -0.13776652, -1.03335881, -1.62485683]])

9.np.random.binomial(n,p,size=None)

对二项分布进行采样。n表示采样次数,p表示成功的概率,size表示输出结果的形状(shape)

np.random.binomial的输出结果为:n次采样结果中成功的数量(记住参数p为每次成功的概率)

np.random.binomial(1,0.5) #表示每次尝试成功的概率为50%,进行1次尝试,成功的数量是多少。输出结果为:0 或者 1。0表示经过一次尝试,这次尝试没有成功;1表示经过一次尝试,这次尝试成功了。

sum(np.random.binomial(1,0.5,size=10000)==1)/10000 0.5053

上面代码意义为:每次尝试成功的概率为50%,进行尝试一次,得到一个结果,1表示成功了,0表示失败了。前面步骤重复10000次。得到了长度为10000,值为0或者1的一个数组。其中等于1(成功)的数量的占比是多少。结果0.5053基本符合参数p为0.5的设置。

sum(np.random.binomial(10,0.1,size=10000)==0)/10000 0.3507

上面代码意义为:每次尝试成功的概率为10%,进行尝试10次,得到一个结果,结果表示10次里成功的次数,可能的输出值为0-10。前面步骤重复10000次。得到了长度为10000,值为0/1/2/3/4/5/6/7/8/9/10的一个数组。其中等于0表示10次尝试都失败了,1表示10次尝试成功了1次,...,10表示10次尝试都成功了。结果0.3507的意义为经过10000次尝试,统计结果显示,10次尝试都失败的概率值。

附:random.sample(population,k)

从population(列表或集合)中随机选出k个不重复的元素,结果为列表



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有