返回顶部
首页 > 资讯 > 后端开发 > Python >numpy.random.choice()函数详解
  • 327
分享到

numpy.random.choice()函数详解

numpy.random.choice()函数numpy.random.choice()numpy.random 2023-05-12 14:05:05 327人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.参数a2.参数size3.参数replace4.参数p处理数据时我们经常需要从数组中随机抽取元素,这时候我们可以考虑使用np.random.choice()函数 语法格式 n

处理数据时我们经常需要从数组中随机抽取元素,这时候我们可以考虑使用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

到此这篇关于numpy.random.choice()函数的文章就介绍到这了,更多相关numpy.random.choice()函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: numpy.random.choice()函数详解

本文链接: https://lsjlt.com/news/202098.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • numpy.random.choice()函数详解
    目录1.参数a2.参数size3.参数replace4.参数p处理数据时我们经常需要从数组中随机抽取元素,这时候我们可以考虑使用np.random.choice()函数 语法格式 n...
    99+
    2023-05-12
    numpy.random.choice()函数 numpy.random.choice() numpy.random
  • MATLAB:plot函数详解
    plot函数是MATLAB中用于绘制2D图形的函数,它可以绘制曲线、散点图、柱状图等。其基本语法为:plot(x, y)plot(x...
    99+
    2023-09-09
    MATLAB
  • python函数详解
    结构:    def  函数名():        函数体执行:    函数名()返回值:    return    一,函数中,遇到return终止函数    二,返回值,返回给了函数的调用者:函数名()    return单个值,返回单...
    99+
    2023-01-31
    详解 函数 python
  • PythonMap函数详解
    目录首先我们从 for 循环开始for 循环背后发生了什么Python map 函数(附示例代码)Python map 函数背后发生了什么如果要转换项目,使用 Python map ...
    99+
    2024-04-02
  • Rust 函数详解
    目录函数参数函数返回值高阶函数函数指针类型函数作为参数函数作为返回值相关资料Rust 支持多种编程范式,但更偏向于函数式,函数在 Rust 中是“一等公民”,函数可以作为数据在程序中...
    99+
    2024-04-02
  • PHP加密函数与解密函数详解
    去网上找了下。 Php常用的加密函数有 MD5加密(不可逆)、Crypt加密(不可逆)、Sha1加密(不可逆)、Urlencode加密(可逆) base64编码加密(可逆) 还是见识...
    99+
    2022-11-13
    PHP 加密 解密函数 PHP 加密函数 PHP 解密函数
  • Java8之Function函数、BiFunction函数详解
    众所周知,Java8提供了一下非常重要的函数式接口。今天我们就来讲讲其中一个函数式接口-----Function接口。 下面的代码就是Function接口的全部代码。接下来我们逐个分析一下。 @Fun...
    99+
    2023-08-31
    Java Function BiFunction 新特性
  • python常用函数random()函数详解
    目录random()random.seed()randint()random() 方法返回随机生成的一个实数,它在[0,1)范围内。 random() 返回随机生成的一个实...
    99+
    2023-02-22
    python random()函数 python random
  • python imread函数详解
    Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误。如果你正好也对此感...
    99+
    2022-06-02
    python imread函数 python imread函数讲解
  • Java Math.round函数详解
    1.代码如下: public class TestMathRound { public static void main(String[] args) { ...
    99+
    2024-04-02
  • PHP json_decode()函数详解
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ...
    99+
    2023-08-31
    ai php 安全
  • PHP trim函数详解
    1. 官方说明 trim(string $string, string $characters = " \n\r\t\v\x00"): string 删除字符串两边的空白字符以及预定义字符。 2. 参...
    99+
    2023-09-10
    php 开发语言
  • 【Pytorch】torch.max() 函数详解
    文章目录 一、一个参数时的 torch.max()1. 函数介绍2. 实例 二、增加指定维度时的 torch.max()1. 函数介绍2. 实例 三、两个输入张量时的 torch.ma...
    99+
    2023-09-30
    pytorch python 深度学习
  • 【MySQL】substring_index 函数详解
    【MySQL】substring_index 函数详解 命令格式 string substring_index(string , string , int ) 命令说明 截取字符串str第count...
    99+
    2023-09-30
    mysql 数据库 java
  • mysql GROUP_CONCAT函数详解
    文章目录 概要使用技巧1. 建表、插入数据2.以id分组,把age字段的值拼成一行,逗号分隔(默认)3.以id分组,把age字段的值拼成 一行,分号分隔4.以id分组,把去冗余的age字段的值...
    99+
    2023-09-13
    mysql 数据库
  • 【PyTorch】nn.Conv2d函数详解
    文章目录 1. 函数语法格式2. 参数解释3. 尺寸关系4. 使用案例5. nn.functional.conv2d 1. 函数语法格式 CONV2D官方链接 torch.nn.Conv2...
    99+
    2023-09-01
    pytorch 深度学习 python
  • Python isalpha()函数详解
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 isalpha...
    99+
    2023-10-23
    python 网络安全 人工智能 机器学习
  • Python Open函数详解
    这里写目录标题 一级目录二级目录三级目录1、文件IO的常见操作2、打开操作Open2.1 file 文件名2.2 mode 模式2.2.1. R模式:mode = "r"2.2.2. W模式:...
    99+
    2023-10-24
    python 开发语言 linux
  • C++lambda函数详解
    目录Lambda 表达式基础1. 值捕获2. 引用捕获3. 隐式捕获4. 表达式捕获泛型 Lambda函数对象包装器Lambda 表达式 Lambda 表达式是现代 C++ 中最重要...
    99+
    2023-02-13
    C++ lambda表达式 C++ lambda函数
  • Python count()函数详解
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 ...
    99+
    2024-01-21
    人工智能 网络安全 ai
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作