#! usr/bin/env python # coding: utf-8 # 使用numpy中的随机函数 学习笔记 # 2018年06月04日11:38:43 北京昌平 import numpy.matlib import numpy as np # 说明,每块代码运行时,请将其他模块注释: # 注释方法1:选中要注释的部分,然后同时按住ctrl和/按键 # 注释方法2:采用字符注释,在要注释的代码前后各加上三个引号 # # 参考:https://docs.scipy.org/doc/numpy/reference/generated/numpy.matlib.rand.html#numpy.matlib.rand # # numpy.matlib.rand() 返回一个numpy的矩阵 # # 值在[0,1)的区域内 # random1 = numpy.matlib.rand(2) # # 表示生成一个一维具有两个元素的随机数 # random2 = numpy.matlib.rand(2,3) # # 表示生成一个2*3的矩阵 # print(random1) # print(type(random1)) # print(random2) # # 注意到上面这个随机数的生成,是不可以重复的,也就是说运行时间不同,得到的值不一样 # # numpy.matlib.randn()构造服从均值为0方差为1的正态分布的随机数 # random3 = numpy.random.randn(10000) # # 产生很多个服从某分布的随机数组,后面可以验证是否服从这个分布 # # 注意到函数的输入可以是多个,每个数则表示一维。 # # 如numpy.random.randn(10,10,10)则表示生成10*10*10的三维随机矩阵。 # print(random3) # mean = np.mean(random3) # # 这是numpy中计算均值的函数,直接调用. # print(mean) # variance = np.std(random3) ** 2 # # 这是numpy中计算标准差的函数,直接调用,平方后就得到了方差 # print(variance) # # 可以从打印的结果中看出这是服从均值为0,方差为1的正太分布的 # # 注意,如果输出的数量太少,可能结果偏差比较大。 # # # 通过numpy.random.randn函数如何生成服从指定均值和方差的矩阵呢? # # 同理,我们上面也会问如何生成指定范围的随机数呢? # # 实际上,我们都可以利用单位函数来构造我们想要的随机数 # # sigma * np.matlib.randn(...) + mu # # 上面就是生成了指定方差为sigma平方,均值为mu的随机数 # random4 = 2.5 * np.matlib.randn((1000, 4000)) + 3 # mean4 = np.mean(random4) # variance4 = np.std(random4) ** 2 # print(random4) # print(mean4) # print(variance4) # # 从打印结果可以看到均值为2.999.方差为6.250,和理论值很接近 # # numpy.random.rand产生均匀分布的随机数 # random5 = np.random.rand(3,5) # print(random5) # 2018年06月04日20:56:44 于北京昌平 # 介绍到这里,可以看出随机数的构造是可以服从某些分布的 # 可以利用一些基本分布函数来构造更加复杂的分布 # 除了正太分布,0-1分布,均匀分布,还有其他分布,如果有需要,可以自行查找官网 # 有时候,我们可能需要随机数可以重现,这时需要用到随机数种子 # 种子唯一,则随机数也会唯一 np.random.seed(20) random6 = np.random.rand(3,3) print(random6) # 注意,如果我们后面还用到随机数,一定要重新设定随机数的种子,否则就不是随机数了 # 至于随机数种子,以及计算机如何产生随机数的,有兴趣的可以进一步了解。#! usr/bin/env python # coding: utf-8 # 使用nump