Python中NumPy库提供的函数——np.random.choice的基本用法

本文介绍了NumPy库中的random.choice函数的基本用法,包括从数组中随机选择元素及指定样本数量。特别强调了其在实现mini-batch数据处理中的应用,如随机生成训练数据子集。

一、基本用法

它用于从给定数组或序列中进行随机采样。

下面介绍了两种的基本用法:

import numpy as np

# 创建值的数组或序列
data = np.array([1, 2, 3, 4, 5])

# 从数组中随机选择一个元素
random_element = np.random.choice(data)
print(random_element)

# 您还可以指定要绘制的随机样本的数量
random_elements = np.random.choice(data, size=3)
print(random_elements)

在上面的示例中,np.random.choice用于从data数组中随机选择元素。默认情况下,它选择一个元素,但您可以使用参数指定所需的样本数size

以下是一些常用参数np.random.choice

  • a:要从中采样的输入数组或序列。
  • size:要抽取的样本数。如果未指定,则默认为 1。
  • replace:如果True,则通过放回进行采样(可以多次选择相同的元素)。如果False,则采样无需放回。
  • p输入数组中每个元素的可选概率分布。如果指定,它确定每个元素被选择的概率。

np.random.choice常用于各种应用,包括机器学习中数据增强的随机采样、统计中的引导以及创建随机排列。

二、举例在mini-batch的实现中的一段代码

import numpy as np
train_size = 60000
batch_size = 100
# 获取mini-batch
batch_mask = np.random.choice(60000, 100)
print(batch_mask)
这里,mini-batch的大小为100,需要每次从60000个训练数据中随机取出100个数据(图像数据和正确解标签数据)。
`np.random.choice` 是 NumPy 中用于从给定的一维数组或整数范围中随机抽取元素的函数。其基本语法为 `np.random.choice(a, size=None, replace=True, p=None)`,各参数含义如下: - `a`:可以是一维数组或整数。如果是一维数组,随机样本将从该数组的元素中生成;如果是整数 `n`,则随机样本生成类似 `np.arange(n)` [^3]。 - `size`:可选参数,用于指定抽取元素的数量或形状。可以是整数或整数元组。若不指定,则默认抽取一个元素 [^3]。 - `replace`:可选的布尔型参数,用于指定抽取的样本是否允许有重复值。`False` 表示不允许重复,`True` 表示允许重复,默认值为 `True` [^3]。 - `p`:可选的一维数组,用于指定 `a` 中每个元素被抽取的概率。如果不提供该参数,则默认每个元素被抽取的概率相等 [^3]。 以下是一些使用示例: #### 从一维数组中随机抽取一个元素 ```python import numpy as np data = np.array([1, 2, 3, 4, 5]) random_element = np.random.choice(data) print(random_element) ``` #### 从一维数组中随机抽取多个元素 ```python import numpy as np data = np.array([1, 2, 3, 4, 5]) random_elements = np.random.choice(data, size=3) print(random_elements) ``` #### 不允许重复抽取元素 ```python import numpy as np data = np.array([1, 2, 3, 4, 5]) random_elements = np.random.choice(data, size=3, replace=False) print(random_elements) ``` #### 指定每个元素的抽取概率 ```python import numpy as np data = np.array([1, 2, 3, 4, 5]) probabilities = np.array([0.1, 0.2, 0.3, 0.2, 0.2]) random_elements = np.random.choice(data, size=3, p=probabilities) print(random_elements) ``` #### 从整数范围中抽取元素 ```python import numpy as np random_elements = np.random.choice(10, size=5) print(random_elements) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值