当前位置: 首页 > 面试题库 >

使用SciPy或NumPy生成具有指定权重的离散随机变量

袁波
2023-03-14
问题内容

我正在寻找一个简单的函数,该函数可以根据相应的(也指定的)概率生成指定的随机值数组。我只需要它来生成浮点值,但我不明白为什么它不应该能够生成任何标量。我可以想到许多通过现有功能构建此功能的方法,但是我想我可能只是错过了明显的SciPy或NumPy函数。

例如:

>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)

注意:我找到了
scipy.stats.rv_discrete,
但是我不知道它是如何工作的。具体来说,我不明白这(下面)的含义或应做什么:

numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs

如果我应该使用rv_discrete,请为我提供一个简单的示例并解释上述“ shape”语句吗?


问题答案:

来自离散分布的图形直接内置到numpy中。该函数称为random.choice(很难找到,而无需参考numpy文档中的离散分布)。

elements = [1.1, 2.2, 3.3]
probabilities = [0.2, 0.5, 0.3]
np.random.choice(elements, 10, p=probabilities)


 类似资料:
  • 问题内容: 我正在尝试设计一种(好的)方法,从可能的数字范围中选择一个随机数,其中该范围内的每个数字都具有权重。简单地说:给定数字范围(0,1,2),请选择一个数字,其中0的概率为80%,1的概率为10%,2的概率为10%。 自从我的大学统计课程上课以来已经有8年了,所以您可以想象一下,目前适合我的方法并不适合我。 这是我想出的“便宜又肮脏”的方法。此解决方案使用ColdFusion。您可以使用任

  • 本文向大家介绍C#生成指定范围内的不重复随机数,包括了C#生成指定范围内的不重复随机数的使用技巧和注意事项,需要的朋友参考一下 C#生成指定范围内的不重复随机数 下面来介绍下其他网友的实现方法: 方法1:思想是用一个数组来保存索引号,先随机生成一个数组位置,然后把随机抽取到的位置的索引号取出来,并把最后一个索引号复制到当前的数组位置,然后使随机数的上限减一,具体如:先把这100个数放在一个数组内,

  • 这是我的代码: null null 因此,一般来说,我想生成一个随机数量的divs和随机的位置。 不幸的是,这篇或这篇文章对我没有帮助。太具体了。 我会非常感谢你的帮助!

  • 本文向大家介绍java生成指定范围的随机日期,包括了java生成指定范围的随机日期的使用技巧和注意事项,需要的朋友参考一下 有这样一个需求:构造一个方法,随机生成1990-12-31 00:00 00到 2013-12-31 00:00:00之间任意一个时间点。 思路是这样:在javaAPI中 Date类型和long类型很好转化,所以我们可以把问题转化为,求两个long类型数之间的任意值。 同时需

  • 当您导入java.util.random之后,您可以通过两种方式生成随机整数和随机double。 您可以创建Random类的一个实例

  • 问题内容: 我有一个具有不同值的概率的文件,例如: 我想使用此分布生成随机数。是否存在处理此问题的现有模块?自己编写代码是很简单的(构建累积密度函数,生成随机值[0,1]并选择相应的值),但似乎这应该是一个常见问题,并且可能有人为它创建了一个函数/模块它。 我需要这个,因为我想生成一个生日列表(不遵循标准模块中的任何分布)。 问题答案: 可能就是你想要的。你可以通过values参数提供概率。然后,