1 random库:生成随机数
random函数使需要导入random库。
import random
1.1 random.seed(a):设置种子。
a是生成随机数的种子,种子不同,生成的随机数不同,种子相同,随机数相同。设置相同的种子,可以生成相同的随机数,这样就可以确保同一个代码的结果相同。
1.2 random.random() :随机生成一个[0,1)内的浮点数。
import random
random.seed(20)
print('随机数:',random.random())
# 由于设置了种子为20,因此,你可以得到和我相同的随机数0.9056396761745207
1.3 random.sample(list,k):从序列list中取k个值构成新list。
import random
random.seed(20)
list = [1, 2, 3]
print('随机数:',random.sample(list ,2))
# 随机数:[3, 1]
1.4 random.randint(a,b):随机生成一个[a,b]内的整数。
import random
random.seed(20)
print('随机数1:', random.randint(3,5))
# 随机数1:5
1.5 random.randrange(start,end,step):随机生成一个[a,b]内以step递增的集合中的整数。
import random
print(random.randrange(0,10,2))
#输出[0,10)中的[0,2,4,6,8]中任意一个整数
可以不指定step
1.6 random.shuffle(数据名):将数据进行随机排列。
有很多网页说该函数只支持类型为list的数据,但是我发现除了list以外,也是支持一维ndarray类型的数据的,该函数可以把ndarray看做一维list数据并打乱数据(但是不支持多维ndarray,如果强行使用的话进行不是打乱操作,而有删减)。因此该函数有三个需要注意的地方:
1.6.1 random.shuffle(list数据)
import random
x=list((0,100,10))
print(x)
#Out1:[0, 100, 10]
random.shuffle(x)
print(x)
#Out2:[100, 10, 0]
1.6.2 random.shuffle(一维ndarray数据)
import random
x=np.arange(0,100,10)
print(x) #x是ndarray数据
#Out1:[ 0 10 20 30 40 50 60 70 80 90]
random.shuffle(x)
print(x)
#Out2:[60 40 10 70 0 90 20 80 50 30]
1.6.3 random.shuffle(x)没有返回值,它只能改变x的内容,因为无法将random.shuffle(x)赋值给y,执行print(y)是没有值的显示None。
import random
x=list((0,100,10))
print(x)
#Out1:[ 0 100 10]
y=random.shuffle(x)
print(x)
#Out2:[100, 10, 0]
print(y)
#Out3:None
1.7注意:设置种子后,是每次运行文件的输出结果一样,而不是所有随机函数生成的结果一样。如下面代码,你可以得到和我一样的随机数1和随机数2,但是随机数1和2的值是不一样的
random.seed(1)
print('随机数1:',random.random())
print('随机数2:',random.random())
# 结果 随机数1: 0.13436424411240122
# 随机数2: 0.8474337369372327
2 np.random模块作用:numpy库提供的random函数来生成随机数
由于是numpy库提供的random函数,需要导入numpy库。
import numpy as np
2.1 np.random.random(a) :随机生成a个[0,1)内的浮点数,注意形式是ndarray
import numpy as np
print(np.random.random(5))
#输出 [0.43069789 0.57398699 0.86832186 0.88274874 0.29381496]
2.2 np.random.rand(参数): 可以得到一个或一组在[0,1]之间服从均匀分布的随机数据
2.2.1 np.random.rand():随机得到一个[0,1]之间的浮点数
import numpy as np
print(np.random.rand())
#Out:0.7090425219928455
2.2.2 np.random.rand(a):得到a个[0,1]之间的服从均匀分布的随机数据,注意形式是ndarray
import numpy as np
print(np.random.rand(6))
#Out:[0.47064081 0.76459257 0.46739268 0.26900105 0.83169259 0.55132494]
2.2.3 np.random.rand(a,b):得到a组数据,其中每组有b个[0,1]之间的服从均匀分布的随机数据
import numpy as np
print(np.random.rand(3,5))
#Out:[[0.0700815 0.47247504 0.74276483 0.19195608 0.4643115 ]
# [0.23036281 0.50824754 0.20856831 0.04930424 0.51886188]
# [0.17227835 0.39631329 0.1073653 0.50981028 0.10213523]]
2.3 np.random.randn(参数): 可以得到一个或一组服从标准正态分布的随机数据(标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布)。
2.3.1 np.random.randn():随机得到一个浮点数
import numpy as np
print(np.random.randn())
# 1.6539895358287875
2.3.2 np.random.randn(a):得到a个服从标准正态分布的随机数据,注意形式是ndarray
import numpy as np
print(np.random.randn(6))
# [ 0.26762725 -0.97060158 -1.28006636 -0.6204966 -2.61233446 -1.45135674]
2.3.3 np.random.randn(a,b):得到a组数据,其中每组有b个服从标准正态分布的随机数据
import numpy as np
print(np.random.randn(3,5))
# [[-0.62731275 -0.88584889 1.31681666 -0.59345889 -0.83750115]
# [ 0.26981743 -1.68922013 -0.81944591 0.38951803 -0.52372369]
# [-0.43235334 2.56161022 -0.03684165 -0.77359901 -0.81538221]]
2.4 np.random.randint(low,high,size)
2.4.1 np.random.randint(high,size):得到尺寸为size的最大值为high的整数ndarray,size不能省略
import random
import numpy as np
print(np.random.randint(2, size=5))
#Out:[0 1 1 1 0]
print(np.random.randint(5, size=(2, 4)))
#Out:[[0 4 1 2]
# [2 1 0 1]]
2.4.2 np.random.randint(low,high,size):得到尺寸为size的最大值为high最小组为low的整数ndarray,size能省略
import random
import numpy as np
print(np.random.randint(3,9, (2, 4)))
#Out:[[6 8 7 6]
# [8 4 6 3]]
2.5 np.random.normal(loc,scale,size) :得到均值为loc,scale为标准差的一组尺寸为size的正态分布ndarray
np.random.normal(loc=0.0, scale=1.0, size=None)
经常会用到标准正太分布(μ=0, σ=1)即上式。
3 tf.random模块作用:tensorflow库提供的random函数来生成随机数
由于是tensorflow库提供的random函数,需要导入tensorflow库
import tensorflow as tf
3.1 tf.set_random_seed():设置种子。
有用请点个赞吧~