python中的随机数函数
python中常⽤的随机函数有:1)np.random.rand;2)np.random.randint;3)np.random.randn;4)np.random.random。
1. np.random.rand(d0, d1, ..., dn)
根据给定维度⽣成[0,1)之间的数据,包含0,不包含1。其中dn表⽰每个维度的⼤⼩,n表⽰维度的个数。返回值为指定维度的array。
举例:
1import numpy as np
2
3 x = np.random.rand(3, 2)
4print(x.shape)
5print(x)
7
8'''
9输出结果:
10(3, 2)
11[[0.55911292 0.5242528 ]
12 [0.15812263 0.88402055]
13 [0.50265009 0.65779738]]
14'''
2. np.random.randn(d0, d1, …, dn)
randn函数返回⼀个或⼀组样本,具有标准正态分布,均值为0,标准差为1。其中dn表⽰每个维度的⼤⼩,n表⽰维度的个数。返回值为指定维度的array。
举例:
1import numpy as np
2
3 x = np.random.randn(3, 2)
4print(x.shape)
5print(x)
6
7'''
8输出结果:
9(3, 2)
10[[-0.81758026 -0.0527769 ]
11 [ 0.36913285  1.67281363]
12 [ 0.83645057 -0.54296909]]
13'''
3. np.random.randint(low[, high, size])
返回随机整数,范围区间为[low,high),包含low,不包含high。其中low为最⼩值,high为最⼤值,size为数组维度⼤⼩,dtype为数据类型,默认的数据类型是np.int。high没有填写时,默认⽣成随机数的范围是[0,low)。
1import numpy as np
2
3 x = np.random.randint(3)
4print(x)
5# 1
6
7 x = np.random.randint(1,5)
8print(x)
9# 3
10
11 x = np.random.randint(3, size=5)
12print(x)
13# [0 1 2 2 0]
14
15 x = np.random.randint(3, size=[2, 2])
16print(x)
17'''
18[[2 0]
19 [0 1]]
20'''
4. np.random.random([size])
⽣成[0,1)之间的浮点数,与np.random.rand()功能类似。举例:
1import numpy as np
2
3 x = np.random.random(size=[2, 2])
4print(x)
5'''
6[[0.94329549 0.93561065]
7 [0.33493102 0.67862068]]
8'''
numpy.random.random_sample(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)
上⾯三个函数同样具有类似的功能。
5. np.random.choice(a[, size, replace, p])
从⼀个给定的⼀维数组,⽣成⼀个随机样本.
参数: a为⼀维数组类似数据或整数;size为数组维度;repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据;p为数组中的数据出现的概率。
a为整数时,对应的⼀维数组为np.arange(a)。
1import numpy as np
2
3'''
4第⼀个参数值5对应的a,即传⼊的数据组
5第⼆个参数3就是数组的size,传⼊单值时,数据维度是⼀维的
6此处将⽣成⼀个⼀维数据包含3个⼩于5的整数的数组
7'''python生成1到100之间随机数
8 x = np.random.choice(5, 3)
9print(x)
10#[4 0 4]
11
12#给数组中每个数据出现的概率赋值
13 x = np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
14print(x)
15#[3 2 2]
16
17#repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据
18 x = np.random.choice(5, 4, replace=False)
19print(x)
20#[2 4 1 0]
21
22#也可以传⼊⾮数字、字符串的数组
23 demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
24 x = np.random.choice(demo_list,size=(3,3))
25print(x)
26'''
27[['sansumg' 'sansumg' 'xiaomi']
28 ['sansumg' 'iphone' 'sansumg']
29 ['lenovo' 'xiaomi' 'lenovo']]
30'''
6. np.random.seed()
⽣成随机数的种⼦,使得每次⽣成随机数相同。当我们设置相同的seed,每次⽣成的随机数相同。如果不设置seed,则每次会⽣成不同的随机数。
举例:
1import tensorflow as tf
2import numpy as np
3from sklearn.utils import check_random_state
4
5 x = np.random.randint(0, 10)
6print(x)
7# 8
8
9 x = np.random.randint(0, 10)
10print(x)
11# 9
12
13 np.random.seed(0)
14 x = np.random.randint(0, 10)
15print(x)
16# 5
17
18 np.random.seed(0)
19 x = np.random.randint(0, 10)
20print(x)
21# 5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。