(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()