numpy的随机函数
numpy的random子库
np.random.rand()
np.random.randn()
np.randomrandint()
np.random的随机数函数(1)
rand(d0,d1,……dn) 根据d0—dn创建随机数数组,浮点数,[0,1),均匀分布
randn(d0,d1,……dn) 根据d0—dn创建随机数数组,标准正态分布
randint(low[,high,shape]) 根据shape创建随机整数或整数数组,范围是[low,high)
seed(s) 随机种子,s是给定的种子值
import numpy as np a=np.random.rand(3,4,5) #创建一个随机数组(3,4,5),元素值0-1均匀分布 print(a) [[[0.10852289 0.58219195 0.61669251 0.53496732 0.4284126 ] [0.71027552 0.42987074 0.60886607 0.92230113 0.07015194] [0.57139583 0.98160395 0.37804886 0.83041974 0.32999015] [0.83062575 0.42655531 0.59461816 0.61983036 0.31496838]] [[0.81893444 0.10666681 0.68279135 0.30914687 0.34884563] [0.91752573 0.36649635 0.58365637 0.91932032 0.79877503] [0.82172964 0.66941407 0.63268093 0.97155838 0.50234605] [0.39262931 0.32906061 0.2971336 0.56040154 0.30024667]] [[0.59411643 0.74100158 0.19074535 0.95207661 0.56443231] [0.06124346 0.98955809 0.23652576 0.55223728 0.5171431 ] [0.63037522 0.2907389 0.75518388 0.02112344 0.60935622] [0.58378718 0.86458149 0.40768426 0.89236183 0.5665055 ]]] print(np.max(a)) 0.9895580925113486 print(np.min(a)) 0.021123439229216556 b=np.random.randn(3,4,5) #创建一个随机数组(3,4,5),元素值正态分布 print(b) [[[ 1.28662224 0.41449243 -0.9395526 -0.53027298 0.21394718] [ 0.43466094 0.52261608 -0.78281184 -0.72777173 1.22896809] [-0.24015827 0.55482562 -0.8376314 -0.29255503 -1.61562703] [ 0.21422818 -0.22746539 -0.23407262 -1.03764941 -0.12213657]] [[-0.91826213 -1.50024516 -1.23031647 0.67108298 0.5868192 ] [ 0.31278259 1.04300707 0.99249699 -1.57213431 -0.46380387] [-0.71112238 0.0139669 -0.19651398 -0.41300057 -1.07885457] [ 1.49778337 -1.64478445 1.33352844 0.44141901 -0.26290484]] [[-0.82945577 0.53104472 1.14011765 0.39534554 -1.45345542] [ 0.21409305 -1.95320379 2.28029033 -0.09479558 0.64801611] [-0.10362503 0.57770214 1.87052906 -1.01165838 -0.92811172] [-0.13637305 -0.10606273 -0.01532935 -2.01895726 -0.90191615]]] print(np.max(b)) 2.280290334914727 print(np.min(b)) -2.0189572600107746 c=np.random.randint(100,200,(3,4)) #在100-200之间创建一个3行4列的随机数组 print(c) [[116 106 183 178] [116 144 155 190] [155 114 142 142]] np.random.seed(10) #给定随机种子 d=np.random.randint(100,200,(3,4)) print(d) [[109 115 164 128] [189 193 129 108] [173 100 140 136]] d1=np.random.randint(100,200,(3,4)) print(d1) [[116 111 154 188] [162 133 172 178] [149 151 154 177]] np.random.seed(10) #在同一个种子下,依次生成的随机数组一样 e=np.random.randint(100,200,(3,4)) print(e) [[109 115 164 128] [189 193 129 108] [173 100 140 136]] e1=np.random.randint(100,200,(3,4)) print(e1) [[116 111 154 188] [162 133 172 178] [149 151 154 177]]
np.random的随机数函数(2)
shuffle(a) 根据数组a的第一轴进行随机排列,改变数组x
permutation(a) 根据数组a的第一轴产生一个新的乱序数组,不改变数组x
choice(a,[size,replace,p]) 从一维数组a中以概率p抽取元素,形成size形状新数组replace表示是否可以重用元素,默认为true(可以重复)
import numpy as np a=np.random.randint(1,100,(4,5)) #在1-100创建一个4行5列的数组 print(a) [[13 72 40 30 34] [24 99 24 80 25] [ 1 24 66 2 49] [24 79 48 73 23]] b=np.random.shuffle(a) #在原数组上修改,随机排列第一列,因此没有赋值给b print(a) [[ 1 24 66 2 49] [24 99 24 80 25] [24 79 48 73 23] [13 72 40 30 34]] print(b) None import numpy as np a=np.random.randint(1,100,(4,5)) #在1-100创建一个4行5列的数组 print(a) [[58 67 91 67 40] [83 70 30 84 11] [85 88 88 55 55] [37 67 57 62 71]] b=np.random.permutation(a) #随机排列第一列后的数组赋值给b,没有改变数组a print(a) [[58 67 91 67 40] [83 70 30 84 11] [85 88 88 55 55] [37 67 57 62 71]] print(b) [[83 70 30 84 11] [37 67 57 62 71] [58 67 91 67 40] [85 88 88 55 55]] import numpy as np a=np.random.randint(1,100,(16)) #在1-100中随机生成一个8个元素的一维数组 print(a) [91 91 74 6 36 19 38 81 1 38 37 62 68 36 29 27] b=np.random.choice(a,(3,4)) #从a随机收取元素组成(3,4)的数组,元素可以重复 print(b) [[38 36 74 91] [36 68 81 38] [27 19 91 91]] c=np.random.choice(a,(3,4),replace=True) #从a随机收取元素组成(3,4)的数组,replacew=true元素可以重复,replace=false,元素不能重复 #replace的默认值为,true,可以重复 print(c) [[ 1 29 38 1] [62 6 38 36] [36 27 6 68]] d=np.random.choice(a,(3,4),replace=False) print(d) [[81 74 1 62] [37 91 38 29] [38 68 36 27]] f=np.random.choice(a,(3,4),p=a/np.sum(a)) #以概率p从a抽取元素,组成(3,4)数组 print(f) [[91 91 81 6] [36 36 36 38] [38 91 38 38]]
np.random的随机数函数(3)
uniform(low,high,size) 产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc,scale,size) 产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam,size) 产生具有泊松分布的数组,lam随机事件发生率,size形状
import numpy as np a=np.random.uniform(1,100,(3,4)) #在1-100中随机生成一个(3,4)的具有均匀分布的数组 print(a) [[43.4168374 64.78976927 12.99203845 82.27030645] [85.52698753 23.0748895 14.65536615 42.25548755] [43.759555 8.78827947 76.72084442 25.34123269]] b=np.random.normal(10,5,(3,4)) #以10为均值,以5为标准差,随机生成一个(3,4)的数组 print(b) [[17.04495442 13.21978583 9.68851192 3.96576698] [14.01150184 10.43208314 0.29285598 14.58884782] [ 5.43490551 6.34717191 6.44541801 -0.13578185]]