python - numpy.random 常用随机数

import numpy as np     

'''
numpy.random.rand(d0,d1,…,dn) 函数返回一个或一组[0,1)之间的样本,包含0,不包含1。
d0,d1,…,dn参数,返回值为指定维度的array
'''
print( np.random.rand(4,2) )
'''
[[ 0.11685228  0.14712475]
 [ 0.11366056  0.76300761]
 [ 0.74363742  0.21181744]
 [ 0.61341155  0.44708576]]
'''
print( np.random.rand(4,3,2) ) # shape: 4*3*2
'''
[[[ 0.04958074  0.13186831]
  [ 0.01945533  0.14773677]
  [ 0.62492951  0.47627959]]

 [[ 0.29653743  0.66367071]
  [ 0.0034495   0.70966783]
  [ 0.946643    0.11760016]]

 [[ 0.97410894  0.61808997]
  [ 0.28461861  0.77502732]
  [ 0.46417402  0.63161127]]

 [[ 0.03238787  0.53929789]
  [ 0.37450472  0.4295382 ]
  [ 0.61992048  0.677731  ]]]
'''

'''
numpy.random.randn(d0,d1,…,dn) 函数返回一个或一组标准正态分布的样本。
d0,d1,…,dn参数,返回值为指定维度的array
其中,标准正态分布standard normal distribution又称u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)
'''
print( np.random.randn() ) # 当没有参数时,返回单个数据 -0.34632708415058944
print( np.random.randn(2,4) )
'''
[[-0.0235143   0.95461801 -0.35707671 -2.48551626]
 [ 1.17568014 -0.11793492  0.50482654 -0.53541761]]
'''
print( np.random.randn(4,3,2) )
'''
[[[ 2.63462763  0.30592409]
  [ 0.38685566 -0.14514761]
  [-0.7830593  -2.02809833]]

 [[-0.43544759 -0.56320438]
  [ 0.94488263  0.35037063]
  [-0.11348007 -1.68347537]]

 [[-0.00520965  0.26542665]
  [ 0.30594313  1.12440037]
  [-0.63858492  0.50772968]]

 [[-2.09797551  0.28963364]
  [-1.7754612   1.41015309]
  [ 0.02481634 -0.24755163]]]
'''

'''
numpy.random.randint(low, high=None, size=None, dtype='l')
返回随机整数,范围区间为[low,high),包含low,不包含high
参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
high没有填写时,默认生成随机数的范围是[0,low)
'''
print( np.random.randint(1,size=5) ) # 返回[0,1)之间的整数,所以只有0  [0 0 0 0 0]
print( np.random.randint(1,5) ) # 返回1个[1,5)时间的随机整数 
print( np.random.randint(-5,5,size=(2,2)) )

'''
numpy.random.random_integers(low, high=None, size=None)
返回随机整数,范围区间为[low,high],包含low和high
参数:low为最小值,high为最大值,size为数组维度大小
high没有填写时,默认生成随机数的范围是[1,low]
该函数在最新的numpy版本中已被替代,建议使用randint函数
'''
# print( np.random.random_integers(1,size=5) )

'''
生成[0,1)之间的浮点数
numpy.random.random_sample(size=None)
numpy.random.random(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)
'''
print('-----------random_sample--------------')
print(np.random.random_sample(size=(2,2)))
print('-----------random--------------')
print(np.random.random(size=(2,2)))
print('-----------ranf--------------')
print(np.random.ranf(size=(2,2)))
print('-----------sample--------------')
print(np.random.sample(size=(2,2)))

'''
numpy.random.choice(a, size=None, replace=True, p=None)
从给定的一维数组中生成随机数
参数:a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
'''
print( np.random.choice(5,3) ) # [4 0 0] 从[0 5) 中随机选 3个数 组成array
print( np.random.choice(5, 3, replace=False) ) # replace=False 生成的随机数不能重复
##当a为整数,对应的一维数组时,且排序后 与 np.arange(4) 结果一样 
aa = np.arange(4)
print(aa) #[0 1 2 3]是有序的
bb = np.random.choice(4,4, replace=False);
bb.sort()
print(bb) #[0 1 2 3]是有序的

print( np.random.choice(5,size=(3,2)))

demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
print( np.random.choice(demo_list,size=(3,3)) )
'''
[['moto' 'sansumg' 'xiaomi']
 ['xiaomi' 'iphone' 'iphone']
 ['moto' 'moto' 'xiaomi']]
'''

###参数p的长度与参数a的长度需要一致;参数p为概率,p里的数据之和应为1
demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
print( np.random.choice(demo_list,size=(3,3), p=[0.1,0.6,0.1,0.1,0.1]) )
'''
[['sansumg' 'iphone' 'sansumg']
 ['iphone' 'lenovo' 'sansumg']
 ['moto' 'sansumg' 'iphone']]
'''

'''
np.random.seed()的作用:使得随机数据可预测。用于指定随机数生成时所用算法开始的整数值。 
1.如果使用相同的seed( )值,则每次生成的随即数都相同; 
2.如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。 
3.设置的seed()值仅一次有效
'''
np.random.seed(1)

猜你喜欢

转载自blog.csdn.net/secondlieutenant/article/details/79641220