天天看点

numpy的random总结

random模块用于生成随机数,下面是一些常用的函数用法:

1.np.random.rand 生成一个[0,1)之间的随机浮点数或N维浮点数组,如下图例子

numpy的random总结
numpy的random总结

上图中2,3,2分别生成的数组有多少行,多少列,每一个有多少元素

2.np.random.randn 返回一个或一组样本,具有标准正态分布。

numpy的random总结

3.np.random.randint返回一定范围的一维或者多维整数

numpy.random.randint(low, high=None, size=None, dtype=’l’)

返回随机整数,范围区间为[low,high),包含low,不包含high

size为数组维度,元组形式,如(2,3)#2行3列

high没有填写时,默认生成随机数的范围是[0,low)

dtype指定数据类型,默认int

numpy的random总结

4. np.random.choice从给定的一维数组中生成随机数

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

 a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率

 a为整数时,对应的一维数组为np.arange(a)

numpy的random总结
numpy的random总结

如上图a可以为一个数字也可以为一个数组,size为生成的数据维度2*3,p为每个元素出现的概率

5.其他函数举例,都可以生成多维数组

print('-----------random_sample--------------')

print(np.random.random_sample(size=(2,2)))

-----------random_sample--------------

[[ 0.34966859  0.85655008]

 [ 0.16045328  0.87908218]]

print('-----------random--------------')

print(np.random.random(size=(2,2)))

-----------random--------------

[[ 0.25303772  0.45417512]

 [ 0.76053763  0.12454433]]

print('-----------ranf--------------')

print(np.random.ranf(size=(2,2)))

-----------ranf--------------

[[ 0.0379055   0.51288667]

 [ 0.71819639  0.97292903]]

print('-----------sample--------------')

print(np.random.sample(size=(2,2)))

-----------sample--------------

[[ 0.59942807  0.80211491]

 [ 0.36233939  0.12607092]]

6. numpy.random.seed(n) 其中n为任意指定

当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

numpy.random.seed(0) 

>>> numpy.random.rand(4)  

array([ 0.42,  0.65,  0.44,  0.89])  

也就是说,每次想获得与上次相同的随机数,seed后的数字应该相同,而且seed后只对一个random有效。

numpy的random总结
numpy的random总结