【Numpy API】np.random.choice函数解析

np.random.choice函数用于生成一维数组,参数a定义了选择的来源,可以是int、数组或list;size指定生成数组的维度;replace控制是否允许重复抽取;p则可以设定抽取的概率,需保证概率和为1。示例展示了各种用法,包括默认情况、自定义列表、无重复抽取以及按概率抽取。

np.random.choice(a, size, replace, p) 其作用是按要求生成一个一维数组
a是生成一维数组的来源,可以是int类型,可以是数组,也可以是list
size 为从a中抽取的个数,即生成数组的维度
replace 表示从a中是否不重复抽取,默认可重复
p 给出抽取概率,默认随机
例子如下

>>> import numpy as np
>>> a1 = np.random.choice(7,5) # 从0~7中随机选择5个数组成一维数组
>>> a1
array([3, 1, 0, 1, 4])
>>> a2 = np.random.choice([0,1,2,3,4,5,6],5) # 从给定list中随机选择5个数组成一维数组
>>> a2
array([1, 6, 6, 6, 4])
>>> a3 = np.random.choice(np.array([0,1,2,3,4,5,6]),5) # 将list换成array数组依然可以运行,效果一致
>>> a3
array([3, 0, 5, 5, 3])
>>> a4 = np.random.choice([0,1,2,3,4,5,6],5,replace=False) # 上述均有重复,将replace设置为False,即可按要求没有重复的选取
>>> a4
array([0, 4, 3, 6, 5])
>>> a5 = np.random.choice(np.array([0,1,2,3,4,5,6]),5,p=[0.1,0.1,0.1,0.1,0.1,0.1,0.4]) 
# 给出选取概率p,注意p的维度和a的维度一致,并且p中概率和为1
>>> a5
array([6, 3, 2, 6, 6])

np.random.choice函数Numpy库中用于从给定的一维数组中随机选择元素的函数。它的常见用法如下: ```python numpy.random.choice(a, size=None, replace=True, p=None) ``` 其中,参数的含义如下: - `a`:一维数组或整数。如果是一维数组,表示从该数组中选择元素;如果是整数,表示从0到该整数之间(不包括该整数)选择元素。 - `size`:整数或元组(可选)。表示输出的样本数目。如果为整数,则选择出的元素形成一个一维数组;如果为元组,则根据元组中的值确定输出数组的形状。 - `replace`:布尔值(可选)。表示是否允许选择的元素有重复。如果为True,则允许有重复;如果为False,则不允许有重复。 - `p`:一维数组(可选)。表示在选择元素时每个元素对应的概率分布。如果没有指定,则默认为均匀分布。 下面是几个例子: ```python import numpy as np # 从一维数组中随机选择一个元素 arr = np.array([1, 2, 3, 4, 5]) choice = np.random.choice(arr) print(choice) # 从0到9之间选择一个整数 choice = np.random.choice(10) print(choice) # 从一维数组中随机选择3个元素,允许有重复 choices = np.random.choice(arr, size=3, replace=True) print(choices) # 从一维数组中随机选择2个元素,不允许有重复 choices = np.random.choice(arr, size=2, replace=False) print(choices) ``` 希望对你有帮助!如果有更多问题,请继续提问。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值