https://www.cnblogs.com/td15980891505/p/6198036.html
numpy.random模块中提供啦大量的随机数相关的函数。
1 numpy中产生随机数的方法
1)rand() 产生[0,1]的浮点随机数,括号里面的参数可以指定产生数组的形状
2)randn() 产生标准正太分布随机数,参数含义与random相同
3)randint() 产生指定范围的随机数,最后一个参数是元祖,他确定数组的形状
1 2 3 4 5 6 7 8 9 10 11 12 | import numpy as np from numpy import random as nr #只显示小数点后两位 np.set_printoptions(precision = 2 ) r1 = nr.rand( 3 , 4 ) r2 = nr.randn( 5 , 4 ) r3 = nr.randint( 0 , 10 ,size = ( 4 , 3 )) print r1 print r2 print r3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | [[ 0.34 0.51 0.65 0.57 ] [ 0.97 0.16 0.62 0.37 ] [ 0.23 0.78 0.77 0.46 ]] [[ - 0.69 - 1.24 - 0.32 1.07 ] [ 0.05 - 1.97 1.01 - 1.59 ] [ 1.51 - 1.21 1.02 - 0.19 ] [ 1.49 - 0.42 0.64 0.07 ] [ - 0.1 1.11 0.24 - 0.18 ]] [[ 9 6 7 ] [ 1 9 7 ] [ 4 9 6 ] [ 3 9 0 ]] (Pdb) |
2 常用分布
1)normal() 正太分布
2)uniform() 均匀分布
3)poisson() 泊松分布
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import numpy as np from numpy import random as nr #只显示小数点后两位 np.set_printoptions(precision = 2 ) #第一个参数是均值,第二个参数是标准差 r1 = nr.normal( 100 , 10 ,size = ( 3 , 4 )) print r1 #前两个参数分别是区间的初始值和终值 r2 = nr.uniform( 0 , 10 ,size = ( 3 , 4 )) print r2 #第一个参数为指定的lanbda系数 r3 = nr.poisson( 2.0 ,size = ( 3 , 4 )) print r3 |
1 2 3 4 5 6 7 8 9 10 | [[ 100.67 98.39 99.36 103.37 ] [ 98.23 95.11 107.57 111.23 ] [ 97.26 75.21 110.4 112.53 ]] [[ 2.42 6.81 9.96 3.15 ] [ 9.28 4.4 7.87 5.19 ] [ 3.47 2.92 4.5 2.58 ]] [[ 3 1 5 0 ] [ 1 0 4 3 ] [ 3 1 2 1 ]] (Pdb) |
3 乱序和随机抽取
permutation()随机生成一个乱序数组,当参数是n时,返回[0,n)的乱序,他返回一个新数组。而shuffle()则直接将原数组打乱。choice()是从指定的样本中随机抽取。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import numpy as np from numpy import random as nr #只显示小数点后两位 np.set_printoptions(precision = 2 ) #返回打乱数组,原数组不变 r1 = nr.randint( 10 , 100 ,size = ( 3 , 4 )) print r1 print nr.permutation(r1) print r1 print nr.permutation( 5 ) # 使用shuffle打乱数组顺序 x = np.arange( 10 ) nr.shuffle(x) print x #xhoice()函数从指定数组中随机抽取样本 #size参数用于指定输出数组的大小 #replace参数为True时,进行可重复抽取,而False表示进行不可重复的抽取。默认为True x = np.array( 10 ) c1 = nr.choice(x,size = ( 2 , 3 )) print c1 c2 = nr.choice(x, 5 ,replace = False ) print c2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [[ 78 22 43 70 ] [ 46 87 12 32 ] [ 11 56 89 79 ]] [[ 11 56 89 79 ] [ 78 22 43 70 ] [ 46 87 12 32 ]] [[ 78 22 43 70 ] [ 46 87 12 32 ] [ 11 56 89 79 ]] [ 4 1 2 0 3 ] [ 3 4 9 5 8 2 7 0 6 1 ] [[ 4 7 9 ] [ 9 1 7 ]] [ 5 3 2 8 4 ] (Pdb) |