numpy.random模块产生随机数

  1. 产生 [0, 1) 之间的随机数

    • numpy.random.rand()

       numpy.random.rand(d0,d1,…,dn)
       
       - rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
       - dn表示每个维度
       - 返回值为指定维度的array
      

      例1.1:

      >>>np.random.rand(4,2) # 4行2列
      array([[0.10669232, 0.9839076 ],
             [0.67376768, 0.79010495],
             [0.07939011, 0.22977188],
             [0.54017788, 0.68320903]])
      
    • numpy.random.random_sample(size=None)

    • numpy.random.random(size=None)

    • numpy.random.ranf(size=None)

    • numpy.random.sample(size=None)

      这四个函数都是产生[0,1)之间随机数的函数,用法一样,

      例1.2:

      >>> np.random.random_sample(size=(4))   #一维的,4个  
      array([0.68867009, 0.08635921, 0.88254211, 0.60605036])
      
      >>> np.random.random_sample(size=(2,3))  #二维
      array([[0.89693949, 0.51200954, 0.24158491],
             [0.11665254, 0.41706794, 0.67003414]])
      
      >>> np.random.random_sample(size=(3,2,4))   #三维
      array([[[0.84050702, 0.35274098, 0.87450357, 0.65806499],
              [0.79937112, 0.43261848, 0.60403257, 0.28847194]],
      
             [[0.28142754, 0.00671447, 0.53684953, 0.72092988],
              [0.09717808, 0.85686328, 0.15504614, 0.28567422]],
      
             [[0.39187717, 0.94410192, 0.51994066, 0.17610175],
              [0.32837617, 0.77936727, 0.5924614 , 0.38951718]]])
      
  2. 返回正态分布的随机数

    numpy.random.randn()

    numpy.random.randn(d0,d1,…,dn)
     
    - randn函数返回一个或一组样本,具有标准正态分布。
    - 标准正态分布介绍:
     	标准正态分布(standard normal distribution)
     	标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,  记为N(01)。
    - dn表示每个维度
    - 返回值为指定维度的array,没给出参数时只返回一个随机数
    

    np.random.normal(loc=0.0, scale=1.0, size=None)

    - loc: 表示均值
    - scale:表示标准差
    - size:维度
    
  3. 返回随机整数

    numpy.random.randint()

    numpy.random.randint(low, high=None, size=None, dtype='l')
    
    - 返回随机整数,范围区间为[low,high),包含low,不包含high
    - 参数:low为最小值,high为最大值,size为数组维度大小,
           dtype为数据类型,默认的数据类型是np.int
                   
    - high没有填写时,默认生成随机数的范围是[0,low)
    
  4. 返回随机浮点数

    np.random.uniform(low=0.0, high=1.0, size=None)

    - low:最小值
    - high:最大值
    
  5. 从给定的一维数组中生成随机数

    numpy.random.choice()

    numpy.random.choice(a, size=None, replace=True, p=None)
     
     参数:
     
     - a为一维数组类似数据(如列表)或整数;
     - size为数组维度;
     - replace表示是否允许有重复值
     - p为数组中的各个数据出现的概率(与a数据个数要一致)
       a为整数时,内部自动转化为对应的一维数组为np.arange(a)
    

    例5.1

    >>>np.random.choice(5,3)
    array([4, 1, 4])
    
    >>>np.random.choice(5, 3, replace=False)
    # 当replace为False时,生成的随机数不能有重复的数值
    array([0, 3, 1])
    
    >>>np.random.choice(5,size=(3,2))
    array([[1, 0],
           [4, 2],
           [3, 3]])
    
  6. 使用随机数种子生成随机数

    numpy.random.seed()

    作用:

    • 使得随机数据可预测。
    • 当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数。

    例6.1

    np.random.seed(0) #第一个种子
    np.random.rand(5)
    
    out: array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318,  0.4236548 ])
    
    #-------------------------------------------------------------------------------------
    np.random.seed(1676)  #第二个种子,相比于第一个发生改变
    np.random.rand(5)
    
    out:array([ 0.39983389,  0.29426895,  0.89541728,  0.71807369,  0.3531823 ]) 
    	#和之前不一样了
    
    #-------------------------------------------------------------------------------------
    np.random.seed(1676) #第三个种子,与第二个种子一样
    np.random.rand(5)
    
    out:array([ 0.39983389,  0.29426895,  0.89541728,  0.71807369,  0.3531823 ]) 
    	#与第二次一样
    
    

    第三个种子产生的随机数与第二个产生的随机数一样。

posted @   aJream  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示