设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间11 现在时间11 缓存数据 以后别遇到像我这样的人敏感多疑 总是吵着让你陪我经常瞎想 总让你很累吧 但又希望碰到这样的人 因为这样的人真的真的很爱你

以后别遇到像我这样的人敏感多疑 总是吵着让你陪我经常瞎想 总让你很累吧 但又希望碰到这样的人 因为这样的人真的真的很爱你 -- 敏感多疑

查看: 302|回复: 0

Python NumPy随机抽模块介绍及方法

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:203
  • 打卡月天数:0
  • 打卡总奖励:2961
  • 最近打卡:2023-08-27 09:22:16
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
399
主题
364
精华
0
金钱
4114
积分
782
注册时间
2022-12-21
最后登录
2025-5-31

发表于 2023-2-10 22:46:58 | 显示全部楼层 |阅读模式
1. 随机数
  1. np.random.random()
复制代码
是最常用的随机数生成函数,该函数生成的随机数随机均匀分布于
  1. [0, 1)
复制代码
区间。如果不提供参数,
  1. np.random.random()
复制代码
函数返回一个浮点型随机数。
  1. np.random.random()
复制代码
函数还可以接受一个整型或元组参数,用于指定返回的浮点型随机数数组的结构(shape)。也有很多人习惯使用
  1. np.random.rand()
复制代码
函数生成随机数,其功能和
  1. np.random.random()
复制代码
函数一样,知识
  1. np.random.rand()
复制代码
函数不接受元组参数,必须要写成两个整型参数
  1. import numpy as np

  2. print(np.random.random())
  3. print(np.random.random(2))
  4. print(np.random.random((2,3)))
复制代码
  1. np.random.randint()
复制代码
是另一个常用的随机数生成函数,该函数生成的随机整数均匀分布于
  1. [low, high)
复制代码
区间。如果省略low参数,则默认low的值等于0。
  1. np.random.randint()
复制代码
函数还有一个默认参数
  1. size
复制代码
,用于指定返回的整型随机数数组的结构(shape)
  1. print(np.random.randint(10))
  2. print(np.random.randint(10, size=5))
  3. print(np.random.randint(10, size=(2,5)))
  4. print(np.random.randint(10, 100, size=(2,5)))
复制代码
2. 随机抽样

随机抽样是从指定的有序列表中随机抽取指定数量的元素。随机抽样的应用比较广泛,如产品抽检、抽签顺序等。NumPy的随机抽样函数是
  1. np.random.choice()
复制代码
,其原型如下
  1. np.random.choice(a, size=None, replace=True, p=None)
复制代码
参数a表示待抽样的全体样本,它值接受整数或一维的数组(列表)。参数a如果是整数,相当于将数组
  1. np.arange(a)
复制代码
作为全体样本。参数size用于指定返回抽样结果数组的结构(shape)。参数replace用于指定是否允许多次抽取同一个样本,默认为允许。参数p是和全体样本集合等长的权重数组,用于指定对应样本被抽中的概率。
  1. import numpy as np

  2. print(np.random.choice(1,5)) # 抽签样本只有1个元素0,抽取5次
  3. print(np.random.choice(['a','b','c'], size=(3,5), p=[0.5,0.25,0.25])) # 指定权重
  4. print(np.random.choice(np.arange(100), size=(2,5), replace=False)) # 不允许重复
复制代码
3. 正态分布

使用
  1. np.random.randn()
复制代码
函数是最简单的生成标准正态分布随机数的方法。
  1. np.random.randn()
复制代码
函数用于生成均值为0、标准差为1的正态分布(标准正态分布)的随机数、该函数可以接受一个或两个整型参数,用来指定返回的符合标准正态分布的随机数数组的结构(shape)
  1. import numpy as np

  2. print(np.random.randn()) # 标准正态分布,均值为0,标准差为1
  3. print(np.random.randn(5))
  4. print(np.random.randn(2,5))
复制代码
如果需要生成非标准正态分布随机数,则应该使用
  1. np.random.normal()
复制代码
函数。
  1. np.random.nomal()
复制代码
函数默认生成均值为0、标准差为1的正态分布随机数。参数loc用于指定均值,参数scale用于指定标准差,参数size用于指定返回的符合正态分布的随机数数组的结构(shape)。从下面的代码可以看出,和使用默认标准差相比,指定标准差为0.2时,数据分布更加靠近均值
  1. print(np.random.normal()) # 默认均值为0,标准差为1
  2. print(np.random.normal(loc=2, size=5)) # 参数loc指定均值为2
  3. print(np.random.normal(loc=2, scale=0.2, size=(2,5))) # 参数loc指定均值为2,参数scale指定标准差为0.2
复制代码
4. 伪随机数的深度思考

计算机程序或编程语言中的随机数都是伪随机数。因为计算机硬件是确定的,代码是固定的,算法是准确的,通过这些确定的、固定的、准确的东西不会产生真正的随机数,除非引入这个封闭系统以外的因素。计算机系统的随机算法一般使用线性同余或平方取中的算法,通过一个种子(通常用时钟代替)产生。这意味着,如果知道了种子和已经产生的随机数,就可能获得接下来随机数序列的信息,这就是伪随机数的可预测性
NumPy随机数函数内部使用了一个伪随机数生成器,这个生成器每次实例化时都需要一个种子(整数)完成初始化。如果两次初始化的种子相同,则每次初始化后产生的随机数序列就完全一致。
  1. np.random.seed()
复制代码
函数可以指定伪随机数生成器的初始化种子
  1. import numpy as np

  2. np.random.seed(12345) # 使用'12345'随机种子初始化伪随机数生成器
  3. print(np.random.random(5))
  4. print(np.random.random((2,3)))

  5. np.random.seed(12345) # 再次使用'12345'随机种子初始化伪随机数生成器
  6. print(np.random.random(5)) # 和上面完全一致
  7. print(np.random.random((2,3))) # 和上面完全一致
复制代码
从上述代码汇总可以看出,只要指定相同的种子,接下来的随机序列就完全一致。这意味着,只有从外部引入真正的随机因子(如天空云朵的形状、邻居家无线网络信号的强度等)作为种子,才可以得到真正的随机数
此外,NumPy还提供了随机数生成器,可以直接操作这个生成器来生成随机数
  1. r = np.random.RandomState(12345) # 使用随机数生成器也同样
  2. print(r.random(5)) # 和上面完全一致
  3. print(r.random((2,3))) # 和上面完全一致
复制代码
到此这篇关于Python NumPy随机抽模块介绍及方法的文章就介绍到这了,更多相关Python NumPy 内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表