numpy.random.choice()函数详解
作者:山茶花开时。 发布时间:2023-04-30 09:46:03
处理数据时我们经常需要从数组中随机抽取元素,这时候我们可以考虑使用np.random.choice()函数
语法格式
numpy.random.choice(a, size=None, replace=True, p=None)
参数说明
a:如果a是一维数组,就表示从这个一维数组中随机采样;如果a是整数,就表示从0到a-1这个序列中随机采样
size: 从a中选取size个数(采样结果的数量,以概率p随机选取大小为size的数据)
replace:布尔值,表示是否重用元素,即抽取出来的数据是否放回原数组中,默认为True(抽取出来的数据有重复)
p:一个一维数组,其与数组a相对应,表示取数组a中每个元素的概率,默认p=None表示选取的每个元素的概率相同
1.参数a
如果参数a=5,表示在[0, 5)中随机输出一个随机数
import numpy as np
np.random.choice(5) # 3
如果参数a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen'],表示在['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']中随机输出一个随机数
import numpy as np
a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']
np.random.choice(a) # 'Shenzhen'
2.参数size
在[0, 5)内输出3个数字并组成一维数组(ndarray)
import numpy as np
np.random.choice(5, 3) # array([3, 2, 3])
在['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']内输出3个值并组成一维数组(ndarry)
import numpy as np
a = ['Guangzhou', 'Beijing', 'Shanghai', 'Shenzhen']
# array(['Shanghai', 'Shenzhen', 'Shanghai'], dtype='<U9')
np.random.choice(a, size=3)
3.参数replace
replace=False表示非放回采样(不会出现重复的元素)
import numpy as np
# array([4, 0, 3])
np.random.choice(a=5, size=3, replace=False, p=None)
replace=True表示放回采样(会出现重复的元素)
import numpy as np
# array([1, 0, 0])
np.random.choice(a=5, size=3, replace=True, p=None)
4.参数p
参数p实际是个数组,数组元素的个数应该与指定的参数a相同,用来规定选取a中每个元素的概率,默认概率相同,我们可以使用参数p来按概率生成随机数
例子1
import numpy as np
# array([3, 4, 3], dtype=int64)
np.random.choice(5, 3, p=[0.1, 0.2, 0.3, 0.1, 0.3])
上述代码表示分别以p=[0.1, 0.2, 0.3, 0.1, 0.3]的概率从[0,1,2,3,4]这四个数中选取3个数
例子2
每天参加体育锻炼的时间是多少?
A.没时间锻炼
B.10-20分钟
C.20-40分钟
D.50分钟以上
假设有100人填上述选择题,该题共有4个选项(ABCD),我们如何按概率控制这100个人选择A的概率是0.3,B的概率是0.3,C的概率0.3,D的概率是0.1?
import numpy
lists = []
for i in range(1, 101):
r = numpy.random.choice(a=numpy.arange(1,5), p=[0.3, 0.3, 0.3, 0.1])
lists.append(r)
A = 0
B = 0
C = 0
D = 0
'''
数字1代表A
数字2代表B
数字3代表C
数字4代表D
'''
for i in lists:
if i == 1:
A = A + 1
elif i == 2:
B = B + 1
elif i == 3:
C = C + 1
elif i == 4:
D = D + 1
print("A选项个数:", A)
print("B选项个数:", B)
print("C选项个数:", C)
print("D选项个数:", D)
结果如下所示
A选项个数: 27
B选项个数: 26
C选项个数: 36
D选项个数: 11
来源:https://blog.csdn.net/Hudas/article/details/130546994
猜你喜欢
- Oracle是世界上用得最多的数据库之一,活动服务器网页(ASP)是一种被广泛用于创建 * 页的功能强大的服务器端脚本语言。许多ASP开发人
- <% a="福建是中国的一个省|我们美丽中国的武夷山!" b="中国,我们,武夷山,福建,美国,苹果&q
- 本文实例讲述了PHP cookie,session的使用与用户自动登录功能实现方法。分享给大家供大家参考,具体如下:cookie的使用//生
- 问题背景:日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoin
- 本文实例讲述了PHP中PDO事务处理操作。分享给大家供大家参考,具体如下:概要:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么
- 见下面的代码:<html><head><title>精彩春风之月份查询</title><
- 这个技巧将教你如何用css做出漂亮的文本按钮,有活力的按钮将节省你很多制作图片的时间,也能让你一天的工作中成为一个快乐的人,让我们一起看看效
- 最近因需要用python写一个微服务来用MQTT给硬件传输图片,其中python用的是flask框架,大概流程如下:协议为:需要将图片数据封
- 上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫
- 问题:在使用mask_rcnn预测自己的数据集时,会出现下面错误:ResourceExhaustedError: OOM when allo
- 一、join函数(一)参数使用说明描述Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。语法join()
- 本文实例为大家分享了PHP变量传值赋值和引用赋值变量销毁的具体代码,供大家参考,具体内容如下<?php $a = 100
- 本文实例讲述了Python基础之字符串常见操作。分享给大家供大家参考,具体如下:字符串基本操作切片# str[beg:end]# (下标从
- 本文实例讲述了Python实现二维数组按照某行或列排序的方法。分享给大家供大家参考,具体如下:lexsort支持对数组按指定行或列的顺序排序
- python 线程池的四种实现方式线程简述 一个程序运行起来后,一定有一个执行代码的东西,这个东西就是线程; 一般计算(
- 上篇文章介绍了什么是进程、进程与程序的关系、进程的创建与使用、创建进程池等,接下来就来介绍一下进程同步及进程通信。进程同步当多个进程使用同一
- XML的嵌套处理 一般情况下,我们从数据库中查询得到的结果集可能很大,所以从服务器返回到客户端时,数据会被分成若干个页面分别进行传递。此时,
- 阅读上一章:打印样式Chapter 12 CSS布局本书到此为止,讨论的主要是页面内部元素,也就是内容,但是大结构怎么办?长久以来,设计者都
- 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第四个自然段。以下叙述的脚本包括服务器端脚本和客户端的脚本,服务器端脚本指在服务器上
- Apache2 httpd.conf 中文版 # # 基于 NCSA 服务的配