Python中的random.choices详解

1. 什么是random.choices函数?

random.choices是Python标准库中random模块提供的一个函数,用于从给定的序列中随机选择一个值。这个函数可以用于实现随机抽样、按照概率进行选择等功能。

random.choices(population, weights=None, *, cum_weights=None, k=1)函数的参数解释如下:

  • population:必需参数,指定要进行选择的序列(可以是列表、元组等)。
  • weights:可选参数,指定每个元素的权重(概率)。如果不指定,则默认每个元素的权重相等。
  • cum_weights:可选参数,指定累计权重。如果指定了cum_weights,则必需省略weights参数。
  • k:可选参数,指定要选择的元素个数。默认为1,即只选择一个元素。

2. random.choices函数的用法示例

示例1:从列表中随机选择一个元素

import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruit = random.choices(fruits)
print(chosen_fruit)

运行结果

['grape'] 

示例2:按照概率从列表中随机选择一个元素

import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
weights = [0.1, 0.2, 0.3, 0.2, 0.2]
chosen_fruit = random.choices(fruits, weights=weights)
print(chosen_fruit)

运行结果

['orange'] 

示例3:选择多个元素

import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruits = random.choices(fruits, k=3)
print(chosen_fruits)

运行结果

['banana', 'apple', 'watermelon'] 

示例4:利用cum_weights参数选择元素 

import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
cum_weights = [0.1, 0.4, 0.7, 0.9, 1.0]
chosen_fruit = random.choices(fruits, cum_weights=cum_weights)
print(chosen_fruit)

运行结果

['grape'] 

示例5:选择多个元素并计算选择的次数

import randomfruits = ['apple', 'banana', 'orange', 'grape', 'watermelon']
chosen_fruits = random.choices(fruits, k=1000)
fruit_counts = {}for fruit in chosen_fruits:if fruit in fruit_counts:fruit_counts[fruit] += 1else:fruit_counts[fruit] = 1print(fruit_counts)

 运行结果

{'orange': 334, 'grape': 192, 'apple': 203, 'watermelon': 152, 'banana': 119}

3. 总结

random.choices函数是Python中一个非常有用的函数,可以用于实现随机抽样、按照概率进行选择等功能。通过合理地使用参数,我们可以根据需求选择单个或多个元素,并可以对选择的元素进行计数等操作。

通过阅读本文,你应该对random.choices函数有了更深入的理解,并可以灵活地将其应用于自己的编程任务中。

4.特别提醒

random.choices 在 k>1 时,也就是选择的元素个数大于1时,元素是有可能重复的。要想得到一个不重复的随机数列,请自行编写方法。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中,每个文件都是这样的: 追踪的(tracked)- 这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提…

汽美汽修店管理系统会员小程序的作用是什么

汽车后市场汽美汽修赛道同样存在着大量商家,连锁品牌店或个人小店等,门店扎堆且区域覆盖面积广,当然每天车来车往也有不少生意。 随着线上化程度加深和商家不断拓展市场的需要,传统运营模式可能难以满足现状,尤其是年…

Element - UI <el-table-column>多选数据提交后禁用已提交的多选框

1. 通过 selection-change"selectionChange" 将已选择的数据存入selectData数组中 <el-table :data"tableData" class"my-5" selection-change"selectionChange" > //多选框已选择的数据 const selectData ref([]); const sel…

在线图片测试用例

开发中经常需要mock图片&#xff0c;下面是可用于测试的在线图片URL示例&#xff0c; https://picsum.photos/200/200?random2 https://picsum.photos/200/200?random1 https://picsum.photos/300/200?random2 https://picsum.photos/300/200?random1 说明&#xff1a…

前端环境配置(后端使用前端版,简易版非专业前端)

声明本人不是专业做前端的&#xff0c;只是平常开发有时候需要运行前端代码&#xff0c;记录一下配置环境。 安装nvm nvm 即 (node version manager)&#xff0c;好处是方便切换 node.js 版本。 自己网上下载安装包即可&#xff0c;傻瓜式安装。 安装注意事项 要卸载掉现有的 …

HALCON-从入门到入门-图像格式的互相转换

1.废话 上次说到了图片的读取和写入到本地&#xff0c;这次说一下图片的格式相关。 位图和矢量图 photoshop处理出来的图片肯定叫做图片&#xff0c;那么coreDraw处理出来的图片是不是也叫图片。 之间就有区分&#xff0c;一种叫做位图&#xff0c;一种叫做矢量图 位图和矢…

AI大模型探索之路-实战篇13: 从对话到报告:打造能记录和分析的Agent智能数据分析平台

系列篇章&#x1f4a5; AI大模型探索之路-实战篇4&#xff1a;深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5&#xff1a;探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6&#xff1a;掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

echarts 图表不显示的问题

是这样的&#xff0c;点击详情&#xff0c;再点击统计&#xff0c;切换的时候就不会显示echarts图表&#xff0c;刚开始使用的是next Tick&#xff0c;没有使用定时器&#xff0c;后来加上了定时器就实现了如下所示&#xff1a; 代码是如下 const chartContainer ref(null); …

【面试题-011】如何设计一个三高系统

设计一个“三高”系统&#xff08;即高可用、高性能、高并发&#xff09;需要综合考虑系统架构、技术选型、运维管理等多个方面。以下是一些关键的设计原则和步骤&#xff1a; 1. 确定系统需求和目标 高可用&#xff1a;系统需要能够承受故障&#xff0c;并在故障发生时快速恢…

【Text2SQL 论文】DBCopilot:将 NL 查询扩展到大规模数据库

论文&#xff1a;DBCopilot: Scaling Natural Language Querying to Massive Databases ⭐⭐⭐⭐ Code: DBCopilot | GitHub 一、论文速读 论文认为目前的 Text2SQL 研究大多只关注具有少量 table 的单个数据库上的查询&#xff0c;但在面对大规模数据库和数据仓库的查询时时却…

618商品网页制作编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料】

创建一个简单的商品网页可以用HTML、CSS和JavaScript来实现。这种网页会包括商品的图片、名称、描述、价格和购买按钮等。下面是一个详细的源码案例及其讲解&#xff1a; 1. 文件结构 假设我们有以下文件结构&#xff1a; /product-page/imagesproduct.jpgindex.htmlstyle.c…

UML静态图-对象图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段&#xff0c;帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构&#xff0c;包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…

python中获取文件和图片类型的方法

目录 一. 使用第三方库 filetype安装 filetype 库&#xff1a;示例代码&#xff1a; 二. 使用第三方库 Pillow&#xff08;针对图片&#xff09;安装 Pillow 库&#xff1a;示例代码&#xff1a; 三. 使用Python标准库imghdr&#xff08;针对图片&#xff09;示例代码&#xff…

Linux 命令:tail

1. 写在前面 本文主要介绍 Linux tail 命令&#xff1a;可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅实时更新的日志文件。 关注 公众号 获取最新博文&#xff1a; 滑翔的纸飞机 2. tail 命令 tail 命令的基本语法是&#xff1a; tail [OPTION]... [FIL…

Day46 动态规划part06

完全背包问题 完全背包和01背包问题唯一不同的地方就是&#xff0c;每种物品有无限件。先遍历物品还是先遍历背包以及遍历顺序 根据递推公式可知&#xff1a;每一个dp需要根据上方和左方的数据推出&#xff0c;只要保证数据左上方数据是递推出来的这种两个for循环的顺序就是可…

【故障诊断】基于EMD的振动信号时频分析新方法研究附matlab代码

matlab % 步骤1&#xff1a;加载振动信号数据 load(‘vibration_signal.mat’); % 加载振动信号数据&#xff0c;假设信号存储在变量signal中 % 步骤2&#xff1a;定义EMD函数 function imfs emd(signal) imfs []; % 存储提取的IMF分量 while ~isMonotonic(signal)[imf, r…

PostgreSQL的内存参数

PostgreSQL的内存参数 基础信息 OS版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a;16.2 pg软件目录&#xff1a;/home/pg16/soft pg数据目录&#xff1a;/home/pg16/data 端口&#xff1a;5777PostgreSQL 提供了多种内存参数&#x…

一个高效的go语言字符串转驼峰命名算法实现函数

在go语言的开发中我们经常需要对各种命名进行规范&#xff0c; 今天给大家介绍的是一个高效的将字符串转 驼峰命名 &#xff08;即 首字母大写的命名方式&#xff09;的函数。 // 字符串转驼峰命名 // author tekintian <tekintiangmail.com> func CamelStr(str string) …

【python学习】Anaconda的介绍、下载及conda和pip换源方式(切换到国内镜像源)

什么是Anaconda Anaconda 是一个专为数据科学和机器学习预装了多种库的Python发行版。 提供了包管理与环境管理的功能解决了多个版本python并存的问题解决了第三方包安装问题 如何下载Anaconda 官网地址&#xff1a;https://www.anaconda.com/ 点击右上角的 Free Download …

PostgreSQL 和Oracle锁机制对比

PostgreSQL 和Oracle锁机制对比 PostgreSQL 和 Oracle 都是业界广泛使用的关系型数据库管理系统&#xff0c;它们在锁机制方面都有独到的设计来控制并发访问&#xff0c;确保数据的一致性和完整性。下面我们详细比较一下这两个数据库系统的锁机制。 1. 锁类型 PostgreSQL P…