【Python-numpy】numpy.random.choice()解析与使用

简介: 本文介绍了NumPy中的`numpy.random.choice()`函数,它用于从一维数组或整数范围内根据指定概率或均匀分布生成随机样本,支持设置样本大小、是否替换以及每个元素的特定概率。

1 作用

根据给定的一维数组生成随机样本

2 参数解析

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

  • a
    是一维数组状或整数,如果是数组,则会从其元素生成随机样本。如果为int,则生成随机样本,就是a=np.arange(a)

  • size
    是int或int元组,可选。输出的形状。默认值为无,在这种情况下,将返回单个值。

  • replace
    布尔值,可选,sample是否更换

  • p
    一维数组状,可选,与a中每个条目关联的概率。如果未给出,则样本将假定a中所有条目的均匀分布。

3 举例使用

1、从大小为3的np.arange(5)生成均匀的随机样本:

np.random.choice(5, 3)#等同于np.random.randint(0,5,3)

输出
array([0, 3, 4])

2、从大小为3的np.arange(5)生成非均匀随机样本:

np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])

输出
array([3, 3, 0])

3、从大小为3的np.arange(5)生成一个均匀的随机样本,而无需替换:

np.random.choice(5, 3, replace=False)#等同于np.random.permutation(np.arange(5))[:3]

输出
array([3,1,0])

4、从大小为3的np.arange(5)生成非均匀随机样本,而无需替换:

np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])

array([2, 3, 0])

5、可以使用类似任意数组的形式重复上述操作,而不仅仅是整数。例如:

aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])

输出
array([‘pooh’, ‘pooh’, ‘pooh’, ‘Christopher’, ‘piglet’], dtype=’<U11’)

目录
相关文章
|
4天前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
62 2
|
10天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
140 0
|
10天前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
133 0
机器学习/深度学习 算法 自动驾驶
112 0
|
18天前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
87 0
|
23天前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
293 2
|
25天前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
86 0
|
30天前
|
数据采集 消息中间件 并行计算
Python多线程与多进程性能对比:从原理到实战的深度解析
在Python编程中,多线程与多进程是提升并发性能的关键手段。本文通过实验数据、代码示例和通俗比喻,深入解析两者在不同任务类型下的性能表现,帮助开发者科学选择并发策略,优化程序效率。
110 1
|
1月前
|
JSON 供应链 API
京东工业商品详情API数据python解析
京东工业商品详情API专为工业品采购设计,提供商品参数、资质认证、供应链等专业数据,适用于企业采购与供应链管理。支持多SKU查询,采用HTTPS协议与JSON格式,保障数据安全与高效调用。附Python调用示例,便于快速集成。
|
1月前
|
JSON API 数据格式
震坤行商品详情API数据python解析
震坤行商品详情API(zkh.item_get)通过商品ID获取商品标题、价格、库存、图片等详细信息,支持GET请求。本文提供Python调用示例代码,使用requests库实现API调用与数据解析。

推荐镜像

更多