文章目录
- 函数原型
- 参数解析
- 该函数的注意事项
- 例子
- 示例代码
- 示例结果
- 参考
numpy的random模块中的choice函数用于从给定一维(1-D)数组中生成随机样本
。本博客详细节将该函数的API,并给出示例代码和结果。
函数原型
numpy.random.choice(a, size=None, replace=True, p=None)
参数解析
a
:一维数组或者整型数据。如果a传入的是一维数组则从其中产生随机数据,若a是整形则从 numpy.arange(a) 中产生随机数据。- size`:(可选参数)整型数据或者整型数据所构成的元组。输出数据的shape。默认为None,表示输出单个数据。
replace
:(可选参数)布尔类型,默认为True。是否可重复抽取a中的元素,即replace=True有放回采样,replace=False无放回采样。p
:(可选参数)一维数组。为a中的每一个元素指定被抽取的概率,若不指定则默认a中每一个元素被抽取的概率相同。返回值
:从a
中按照所给参数抽取的数据。
该函数的注意事项
- 通过 p 设置用户指定的概率使用比默认采样器更通用但效率较低的采样器。 即使 p 的每个元素都是 1 / len(a),通用采样器也会生成与优化采样器不同的样本。
- 使用此函数无法从二维数组中采样随机行,但可以通过 Generator.choice 通过其 axis 关键字进行采样。
- a 的元素类型可以不用是float、int等,可以是string等其他类型。
例子
- 从a=[1, 2, 3, 4, 5, 6]中随机采样5个数据构成新的1-D数组。
- 从a=[1, 2, 3, 4, 5, 6]中随机采样10个数据构成新的2行5列的2-D数组。
- 从a=[“Brazil”, “Russia”, “India”, “China”, “South Africa”, “Argentina”, “Egypt”, “Ethiopia”, “Iran”, “Saudi Arabia”, “The United Arab Emirates”]不放回地随机采样5个国家名字。
示例代码
import numpy as np
np.random.seed(seed=0)
print("1. 从a=[1, 2, 3, 4, 5, 6]中随机采样5个数据构成新的1-D数组。")
print(np.random.choice(a=[1, 2, 3, 4, 5, 6], size=5))
print("2. 从a=[1, 2, 3, 4, 5, 6]中随机采样10个数据构成新的2行5列的2-D数组。")
print(np.random.choice(a=[1, 2, 3, 4, 5, 6], size=(2, 5)))
print('3. 从a=["Brazil", "Russia", "India", "China", "South Africa", "Argentina", "Egypt", "Ethiopia", "Iran", "Saudi Arabia", "The United Arab Emirates"]不放回地随机采样5个国家名字')
print(np.random.choice(a=["Brazil", "Russia", "India", "China", "South Africa", "Argentina", "Egypt", "Ethiopia", "Iran", "Saudi Arabia", "The United Arab Emirates"], size=5, replace=False))
示例结果
参考
- numpy.random.choice
收集整理和创作不易, 若有帮助🉑, 请帮忙点赞
👍➕收藏
❤️, 谢谢!✨✨🚀🚀