zoukankan      html  css  js  c++  java
  • Numpy随机数

    Numpy随机数

    np.random随机数子库

    1: 基本函数

    • .rand(d0,d1,..dn):创建d0-dn维度的随机数数组,浮点数,范围从0-1,均匀分布
    • .randn(d0,d1,..dn):功能同上,区别:范围不定,标准正态分布
    • .randint(low,high,(shape)):根据shape创建随机整数或整数数组,范围是low,high,形状是shape
    • .seed(s):随机数种子,s是给定的种子值,通过设定相同的随机数种子,可以每次生成相同的随机数
    import numpy as np
    
    a = np.random.rand(3,4,5)
    a
    
    sn = np.random.randn(3,4,5)
    sn
    
    b = np.random.randint(100,200,(3,4,5))
    b
    
    np.random.seed(10)
    np.random.randint(100,200,(3,4))
    np.random.seed(10)
    np.random.randint(100,200,(3,4)) #相同的种子,相同的随机数

    2:高级函数

    • shuffle(a):将数组a的第0轴(最外维度)进行随机排列(洗牌),改变数组a
    • permutation(a):同上,区别是不改变数组a
    • .choice(a, size=None, replace=True, p=None):从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False,p为抽取概率
    import numpy as np
    
    np.random.seed(10)
    a = np.random.randint(100,200,(3,4))
    a
    
    #数组最外一层维度数据发生变化
    np.random.shuffle(a)
    a
    
    np.random.permutation(a)
    a #变量不变
    
    np.random.seed(10)
    b = np.random.randint(100,200,(8,))
    b
    
    np.random.choice(b,(3,2)) #将一维数组内数据抽取转为3行2列数组
    np.random.choice(b,(3,2),replace=False) #不重复抽取值
    np.random.choice(b,(3,2),p=b/np.sum(b)) #p为抽取概率,本位置值越大,抽取概率越高
  • 相关阅读:
    hdu 4015找规律
    hdu4473
    hdu 4016搜索
    hdu4465精度控制
    hdu 2965组合数学题
    hdu 4022map和list等数据结构的应用
    hdu4464超级大水题
    在ASP.NET中实现Url Rewriting
    DotText源码阅读(1)调试
    DotText源码阅读(2)数据库表结构
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/10131589.html
Copyright © 2011-2022 走看看