random

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():设置种子。

有用请点个赞吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值