# 随机数生成 #标准正态分布 samples = np.random.normal(size=(4,4)) print(samples) # 生成一个标准正太分布的4*4样本值 #均值分布 # numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组 —— 均匀分布 import matplotlib.pyplot as plt # 导入matplotlib模块,用于图表辅助分析 % matplotlib inline # 魔法函数,每次运行自动生成图表 a = np.random.rand() print(a,type(a)) # 生成一个随机浮点数 b = np.random.rand(4) print(b,type(b)) # 生成形状为4的一维数组 c = np.random.rand(2,3) print(c,type(c)) # 生成形状为2*3的二维数组,注意这里不是((2,3)) samples1 = np.random.rand(1000) samples2 = np.random.rand(1000) plt.scatter(samples1,samples2) # 生成1000个均匀分布的样本值 #正态分布 # numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组 —— 正态分布 samples1 = np.random.randn(1000) samples2 = np.random.randn(1000) plt.scatter(samples1,samples2) # randn和rand的参数用法一样 # 生成1000个正太的样本值 #整数 # numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组 # 若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数,且high必须大于low # dtype参数:只能是int类型 print(np.random.randint(2)) # low=2:生成1个[0,2)之间随机整数 print(np.random.randint(2,size=5)) # low=2,size=5 :生成5个[0,2)之间随机整数 print(np.random.randint(2,6,size=5)) # low=2,high=6,size=5:生成5个[2,6)之间随机整数 print(np.random.randint(2,size=(2,3))) # low=2,size=(2,3):生成一个2x3整数数组,取数范围:[0,2)随机整数 print(np.random.randint(2,6,(2,3))) # low=2,high=6,size=(2,3):生成一个2*3整数数组,取值范围:[2,6)随机整数 # 随机种子 # 计算机实现的随机数生成通常为伪随机数生成器,为了使得具备随机性的代码最终的结果可复现,需要设置相同的种子值 rng = np.random.RandomState(1) xtrain = 10 * rng.rand(30) ytrain = 8 + 4 * xtrain + rng.rand(30) # np.random.RandomState → 随机数种子,对于一个随机数发生器,只要该种子(seed)相同,产生的随机数序列就是相同的 # 生成随机数据x与y # 样本关系:y = 8 + 4*x fig = plt.figure(figsize =(12,3)) ax1 = fig.add_subplot(1,2,1) plt.scatter(xtrain,ytrain,marker = '.',color = 'k') plt.grid() plt.title('样本数据散点图') # 生成散点图 # 二项分布 # 将一枚硬币抛掷三次:恰好出现一次正面与至少有一次出现正面的概率 a1 = sum(np.random.binomial(3,0.5,10000)==1)/10000 a2 = sum(np.random.binomial(3,0.5,10000)>0)/10000 print('恰好出现一次正面的概率为%.4f, 至少有一次出现正面的概率为%.4f' % (a1,a2))