python numpy 常用随机数的产生方法的实现
作者:积跬步___至千里
numpy 中 的random模块有多个函数用于生成不同类型的随机数,常见的有 uniform、rand、random、randint、random_interges
下面介绍一下各自的用法
1、np.random.uniform的用法
np.random.uniform(low=0.0, high=1.0, size=None)
作用:可以生成[low,high)中的随机数,可以是单个值,也可以是一维数组,也可以是多维数组
参数介绍:
- low :float型,或者是数组类型的,默认为0
- high:float型,或者是数组类型的,默认为1
- size:int型,或元组,默认为空
In[1]: import numpy as np In[2]: np.random.uniform() # 默认为0到1 Out[2]: 0.827455693512018 In[3]: np.random.uniform(1,5) Out[3]: 2.93533586182789 In[4]: np.random.uniform(1,5,4) #生成一维数组 Out[4]: array([ 3.18487512, 1.40233721, 3.17543152, 4.06933042]) In[5]: np.random.uniform(1,5,(4,3)) #生成4x3的数组 Out[5]: array([[ 2.33083328, 1.592934 , 2.38072 ], [ 1.07485686, 4.93224857, 1.42584919], [ 3.2667912 , 4.57868281, 1.53218578], [ 4.17965117, 3.63912616, 2.83516143]]) In[6]: np.random.uniform([1,5],[5,10]) Out[6]: array([ 2.74315143, 9.4701426 ])
2、np.random.random_sample的用法
和np.random.random作用一样
random_sample(size=None)
- 作用:返回[0,1)之间的浮点型随机数,通过size控制返回的形状
np.random.random_sample() 0.47108547995356098 type(np.random.random_sample()) <type 'float'> np.random.random_sample((5,)) array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428]) Three-by-two array of random numbers from [-5, 0): 5 * np.random.random_sample((3, 2)) - 5 array([[-3.99149989, -0.52338984], [-2.99091858, -0.79479508], [-1.23204345, -1.75224494]])
3、np.random.rand的用法
rand(d0, d1, …, dn)
作用:返回[0,1)内的浮点数,输入的d0,d1…dn代表维度信息,没有输入时,则返回[0,1)内的一个随机值
In[15]: np.random.rand() Out[15]: 0.9027797355532956 In[16]:np.random.rand(3,3) Out[16]: array([[ 0.47507608, 0.64225621, 0.9926529 ], [ 0.95028412, 0.18413813, 0.91879723], [ 0.89995217, 0.42356103, 0.81312942]]) In[17]: np.random.rand(3,3,3) Out[17]: array([[[ 0.30295904, 0.76346848, 0.33125168], [ 0.77845927, 0.75020602, 0.84670385], [ 0.2329741 , 0.65962263, 0.93239286]], [[ 0.24575304, 0.9019242 , 0.62390674], [ 0.43663215, 0.93187574, 0.75302239], [ 0.62658734, 0.01582182, 0.66478944]], [[ 0.22152418, 0.51664503, 0.41196781], [ 0.47723318, 0.19248885, 0.29699868], [ 0.11664651, 0.66718804, 0.39836448]]])
4、np.random.randint的用法
randint(low, high=None, size=None, dtype='l')
作用:生成整型随机数,可以是单个随机数,也可以是多维的随机数构成的数组
参数介绍
- low:int 型,随机数的下限
- high:int 型,默认为空,随机数的上限,当此值为空时,函数生成[0,low)区间内的随机数
- size:int、或ints、或元组,指明生成的随机数的类型
- dtype:可选'int' ,'int32',默认为'l'
In[7]: np.random.randint(4) Out[7]: 1 In[8]: np.random.randint(4,size=4) Out[8]: array([2, 2, 2, 0]) In[9]: np.random.randint(4,10,size=6) Out[9]: array([7, 9, 7, 8, 6, 9]) np.random.randint(4,10,size=(2,2),dtype='int32') Out[10]: array([[7, 4], [6, 9]])
5、np.random.random_integers的用法
random_integers(low, high=None, size=None)
和randint的用法较为相似,区别在于[low,high]
的右边界能够取到,且改函数即将被抛弃,可以使用
np.random.randint(low,high+1)进行代替
总结:随机数可以分为两大类,一类是浮点型的,常以np.random.uniform为代表,np.random.rand,np.random.radnom和np.random.random_simple可以看作是np.random.uniform的特例;另一类是整数型的,以np.random.randint为代表,也有np.random.random_integers 但是后者将被前者取代
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。