当前位置: 首页 > news >正文

NumPy随机数生成函数的多种实现方法

NumPy 的numpy.random模块提供了丰富的随机数生成函数,覆盖基础随机数组、概率分布抽样和随机排列等功能。以下是常用函数的详细解析:

一、基础随机数生成函数

1.np.random.rand(d0, d1, ..., dn)

  • 功能:生成 [0, 1) 均匀分布的随机浮点数数组
  • 参数d0, d1...为数组维度(整数)
  • 示例

    1

    2

    np.random.rand(2,3)# 生成 2行3列的随机数组

    # 输出:array([[0.12, 0.34, 0.56], [0.78, 0.90, 0.23]])

2.np.random.randn(d0, d1, ..., dn)

  • 功能:生成符合标准正态分布(μ=0, σ=1)的随机数
  • 参数:同rand()
  • 示例

    1

    2

    np.random.randn(2)# 生成2个标准正态分布随机数

    # 输出:array([-0.45, 1.23])

3.np.random.randint(low, high=None, size=None, dtype=int)

  • 功能:生成 [low, high) 区间的整数随机数
  • 参数
    • low:下限(包含)
    • high:上限(不包含,若未提供则从0开始)
    • size:输出形状
  • 示例

    1

    2

    np.random.randint(1,10, size=(3,))# 生成3个1-9的整数

    # 输出:array([5, 2, 8])

4.np.random.random(size=None)

  • 功能:生成 [0.0, 1.0) 均匀分布的随机浮点数(单个数或数组)
  • 示例

    1

    2

    np.random.random((2,2))# 2x2随机矩阵

    # 输出:array([[0.45, 0.78], [0.12, 0.90]])

二、概率分布抽样函数

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

  • 功能:生成指定区间 [low, high) 的均匀分布随机数
  • 示例

    1

    2

    np.random.uniform(-1,1, size=3)# 3个[-1,1)的均匀分布数

    # 输出:array([-0.23, 0.56, -0.89])

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

  • 功能:生成指定均值(loc)和标准差(scale)的正态分布
  • 示例

    1

    2

    np.random.normal(loc=5, scale=2, size=2)# N(5, 2²)的2个样本

    # 输出:array([4.89, 6.12])

3.np.random.binomial(n, p, size=None)

  • 功能:生成二项分布(n次试验,成功概率p)的随机数
  • 示例

    1

    2

    np.random.binomial(n=10, p=0.5, size=3)# 3次10重伯努利试验的成功次数

    # 输出:array([5, 7, 4])

4.np.random.poisson(lam=1.0, size=None)

  • 功能:生成泊松分布(λ=lam)的随机数
  • 示例

    1

    2

    np.random.poisson(lam=3, size=4)# λ=3的4个泊松样本

    # 输出:array([2, 4, 3, 5])

三、随机抽样与排列

1.np.random.choice(a, size=None, replace=True, p=None)

  • 功能:从序列a中随机抽样
  • 参数
    • replace:是否允许重复抽样(默认True)
    • p:各元素抽样概率(需与a长度相同)
  • 示例

    1

    2

    np.random.choice([1,2,3,4], size=3, p=[0.1,0.2,0.3,0.4])

    # 按概率抽样3个元素,输出:array([3,4,4])

2.np.random.shuffle(x)

  • 功能:原地打乱数组x(修改原数组)
  • 示例

    1

    2

    arr=np.array([1,2,3,4])

    np.random.shuffle(arr)# arr变为 [3,1,4,2]

3.np.random.permutation(x)

  • 功能:生成数组x的随机排列(不修改原数组)
  • 示例

    1

    np.random.permutation([1,2,3,4])# 输出:array([2,4,1,3])

四、随机种子设置

1

2

np.random.seed(42)# 设置随机种子,保证结果可复现

np.random.rand(2)# 每次运行结果相同:array([0.37, 0.95])

关键区别总结

函数组核心特点典型应用场景
rand/randn无需参数直接指定维度,快捷生成数组快速创建随机矩阵
uniform/normal可自定义分布参数(区间/均值等)模拟特定概率分布的数据
choice/shuffle针对序列的抽样与重排随机选样、打乱数据顺序

到此这篇关于NumPy随机数生成函数的多种实现方法的文章就介绍到这了

http://www.jsqmd.com/news/622945/

相关文章:

  • 告别ATE测试瓶颈:手把手教你用Tessent BFD优化SSN内部总线速率与Loop Timing
  • 如何用ViGEmBus在Windows上实现专业级游戏控制:3个简单步骤解锁无限可能
  • 卡证检测矫正模型代码实例:Python调用HTTP API实现批量卡证处理
  • 3步轻松恢复Windows 11任务栏拖放功能:Windows11DragAndDropToTaskbarFix完全指南
  • 3分钟极速上手:网盘下载加速神器全功能使用指南
  • RuoYi系统角色权限划分与控制
  • C#如何用S7.NET快速读写西门子PLC数据?保姆级教程(附代码)
  • CosyVoice-300M效果深度解析:模拟“春晚魔术揭秘”风格的语音讲解
  • 深入解析SGP4算法库:卫星轨道计算的完整实战指南
  • 从手机指南针到导弹制导:惯性导航初始校准的5个关键误区
  • Vision Master 视觉软件应用-字符识别
  • Python 系列教案第 3 课:中高阶难度批量文件重命名
  • 六位数码管静态动态显示
  • 分析灶福星家用猛火灶大火力优势,在广州选购它性价比高吗? - mypinpai
  • Verilog generate for循环 vs 普通for循环:如何选择才不会出错?
  • FastbootEnhance解决方案:Windows平台Android设备底层管理技术实现
  • 如何用Pulover‘s Macro Creator实现零代码自动化?免费脚本生成工具完全指南
  • 【项目实战】基于protobuf的发布订阅式消息队列(2)—— 线程池
  • 2026年上海家宴猛火灶定制专家排名,哪家性价比高 - 工业品牌热点
  • 专业级QMC音频解码器实战指南:开源跨平台格式转换解决方案
  • [极客大挑战 2023] HiddenCode
  • 多线程--第一次小结
  • Hyperf方案 飞书消息卡片交互 - 发送可交互的消息卡片(按钮/下拉框),用户点击后回调到 Hyperf 服务处理业务
  • DeOldify图像上色服务:快速修复老旧照片,色彩自然还原
  • GitHub中文界面插件完整指南:一键实现全平台中文化
  • 盘点纸飞机艺术岛的优势在哪里,苏州热门户外休闲园区推荐 - myqiye
  • 3步突破Windows 11硬件限制:老旧电脑升级完整方案
  • 2026年纺织品市场测评报告:头部面料供应商能力拆解与选型指南 - 2026年企业推荐榜
  • 3大核心功能揭秘:HSTracker如何让macOS炉石玩家实现智能决策优化
  • 忍者像素绘卷微信小程序离线能力:Service Worker缓存像素模板