无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

numpy.random.choice()函数详解 numpy随机样本生成 全网首发(图文详解1)

前沿技术 Micheal 6个月前 (06-24) 91次浏览 已收录 扫描二维码

numpy.random.choice()函数详解

numpy.random.choice()函数是NumPy库中用于生成随机样本的函数。这个函数可以从给定的一维数组中随机抽取数值,可以进行有放回或无放回的抽取,并且允许用户指定抽取的概率分布。

函数的基本语法如下:

numpy.random.choice(a, size=None, replace=True, p=None)

参数说明:

  • a : 如果是一维数组或者列表,函数从其中随机抽取元素;如果是一个整数,抽取的元素为np.arange(a)
  • size : 输出样本数的维度,例如2(2, 3),即抽取一个2×3的样本数组。
  • replace : 布尔值,表示是否进行有放回的抽取,True为有放回,False为无放回。
  • p : 一维数组,表示各个元素对应的抽取概率,数组的长度必须和参数a的长度一致,如果不设置则默认是均匀分布。

使用numpy.random.choice()的步骤通常包括以下几个方面:

  • 导入NumPy库;
  • 准备或指定样本数组;
  • 设定所需的参数和概率分布;
  • 调用函数获取随机样本。

下面是一个简单的示例:

import numpy as np

# 设定随机种子,确保结果可复现
np.random.seed(0)

# 准备样本数组,这里直接使用0到9的数字
a = np.arange(10)

# 抽取5个随机数
samples = np.random.choice(a, size=5, replace=False)

print(samples)

如果你想对结果概率进行控制,可以这样:

# 假设我们想让数字0的概率是0.1,而其他数字的概率均等
probabilities = [0.1] + [0.9 / (len(a) - 1)] * (len(a) - 1)

samples_with_p = np.random.choice(a, size=5, replace=True, p=probabilities)

print(samples_with_p)

这段代码首先设定了0出现的概率,然后对于数组a中的其他元素,赋予了均等的概率(剩余概率均等分给其他元素)。接着调用numpy.random.choice()函数并传递了概率数组p

请注意,在实际应用中,确保传递给p的数组概率总和应该为1,否则函数会抛出错误。如果有任何疑问,欢迎继续提问!
(vue proxytable) vue项目proxyTable配置小结 Vue 项目中的 proxyTable 配置 全网首发(图文详解1)
(android 震动) Android App后台震动的实现步骤详解 Android 应用程序后台震动实现方法 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝