zoukankan      html  css  js  c++  java
  • numpy中的随机数

    # 随机数生成
    #标准正态分布
    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))
  • 相关阅读:
    eclipse中设置自动生成的author,date等注释
    【转】科大校长给数学系学弟学妹的忠告&本科数学参考书
    Eclipse的properties文件中文乱码解决方法
    log4j快速入门
    启动tomcat出现Removing obsolete files from server... Could not clean server of obsolete ……错误
    eclipse构建及运行maven web项目
    Eclipse+Maven创建webapp项目
    linux中通过lsof恢复删除的文件,前题是fd被占用。
    IP工具类-自己动手做个ip解析器
    第4章 集合类
  • 原文地址:https://www.cnblogs.com/yunshangyue71/p/13584314.html
Copyright © 2011-2022 走看看