numpy常用random随机函数

(1)seed([seed])    #---设定随机种子,这样每次生成的随机数会相同
(2)rand(d0,d1,……,dn) #------返回数据在[0,1]之间,具有均匀分布
 

np.random.rand(5)       #一维数组,含有五个元素
np.random.rand(3,4)     #3行四列
np.random.rand(2,3,4)   #2行一列,3行四列


(3)randn(d0,d1,……dn) #-------返回数据具有标准正态分布(均值0,方差1)
  

np.random.randn(5)
np.random.randn(3,4)   #数值不一定在0,1之间,满足均值为0,方差为1,中性分布。
np.random.randn(2,3,4)


(4)randint(low,[high,size,dtype]) #---生成随机整数,包含low,不包含high
  

np.random.randint(3)    #生成[0,3)之间的一个数字
np.random.randint(1,10)  #生成[1,10)之间的一个数字
np.random.randint(10,30,size=(5,))   #生成[10,30)之间的5个数字,一维
np.random.randint(10,30,size=(2,3,4))   #生成[10,30)之间两行一列,3行四列的数字


(5)random([size])   #-----生成[0.0,1.0)的随机数
   

np.random.random(5)   #跟randint差不多,就是random生成的是[0.0,1.0)之间的小数
np.random.random(size=(3,4))
np.random.random(size=(2,3,4))


(6)choice(a[,size,replace,p]) #-----  a是以为数组,从它里面生成随机结果
   

 np.random.choice(5,3)    #[0,5)中挑选三个数字
 np.random.choice(5,(2,3))  #[0,5)中二行三列
 np.random.choice([2,3,6,7,9],3)  #从数组a中挑选三个数字
 np.random.choice([2,3,6,7,9],(2,3))  #二行三列   


(7)shuffle(x)    #-----把一个数组x进行随机排列(打散--就是更改顺序)
   

a=np.arange(10)
np.random.shuffle(a)
a=np.arange(20).reshape(4,5)
np.random.shuffle(a)   #如果数组是多维的,则只会在第一维度打散数据,就是只对第一行的数据进行打散


(8)permutation(x)  #-------把一个数组x进行随机排列,或者数字的全排列
   

np.random.permutation(10)    #会生成range(10)的随机排列
arr=np.arange(9).reshape(3,3)
np.random.permutation(arr)   #会按行打散,就是每一行中每一个元素的顺序不变,就只是第一行的数字--第二行,注意,这里不会更改原来的arr,会返回一个新的copy


(9)normal([loc,scale,size])   #---按照平均值loc和方差scale生成高斯分布的数字
   

np.random.normal(1,10,10)   #就是生成均值为1方差为10的十个数字
np.random.normal(1,10,(3,4))  #就是生成3行4列,然后这些元素的均值为1,方差为10


(10)uniform([low,high,size])   #---在[low,high)之间生成均匀分布的数字
   

 np.random.uniform(1,10,10)   #随机生成
 np.random.uniform(1,10,(3,4))

(11)linspace   #可以在指定的范围(start到stop)内返回一个数组(这里的数组中ndarray数组),这个数组包含了num个均匀间隔的样本
    np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=float,axis=0)

#start:序列的起始点
#stop :序列的终点
#num(可选):生成样本的数量,默认是50
#endpoint(可选):当endpoint=True时包括结束值,当endpoint=False时不包括结束值
#retstep(可选):当retstep=True时返回步长,当retstep=False时不返回步长
#dtype(可选):输出数组的类型。如果未给定dtype,则从其他输入参数中推断数据类型
#axis(可选):可选axis=0或axis=1

import numpy as np
np.linspace(0, 49)
#array([ 0.,  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., 35., 36., 37., 38.,
       #39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49.])
np.linspace(0, 6, 7)
array([0., 1., 2., 3., 4., 5., 6.])
np.linspace(0, 6, 7, endpoint=False)
        #array([0.        , 0.85714286, 1.71428571, 2.57142857, 3.42857143,
         #4.28571429, 5.14285714])

(12) meshgrid:(我的理解,就是假如有两个array,就类似笛卡尔积)

案例:对数组加入随机噪声:

import matplotlib.pyplot as plt
import numpy as np
#绘制sin曲线
x=np.linspace(-10,10,100)   #指定最小数,最大数,在他们中间生成100个点
y=np.sin(x)
plt.plot(x,y)
plt.show()
#加入噪声
x=np.linspace(-10,10,100)
y=np.sin(x)+np.random.rand(len(x))
plt.plot(x,y)
plt.show()

你可能感兴趣的:(深度学习,numpy,python,开发语言)