【问题标题】:Sample from a normal distribution using parameters from an ordered dictionary使用有序字典中的参数从正态分布中采样
【发布时间】:2018-12-08 14:47:51
【问题描述】:

我需要帮助来创建一个函数,该函数使用在有序字典中定义的参数从随机均匀分布中采样,并使用任何随机种子返回一个以参数名称作为键的字典。

parameter=OrderedDict([('a', (100.0, 0.0)), ('b', (90.0, 5.0))])

注意:(100.0, 0.0) 分别是平均值和标准偏差

预期回报:{'a': 105.46565, 'b': 90}

谢谢

【问题讨论】:

  • 让我更好地理解您的问题,您想使用有序字典中的参数从正态分布中采样吗?以100 为中心的零方差正态分布如何给您105.46
  • 为什么不在列表中迭代并选择键值对并将它们放入字典中。?也想听听您对此的实施
  • Filippo 让我让你更容易哥们...... def f(orderedDict):使用元组中的值执行均匀分布,最后返回一个字典。关于你所说的 105.46,我打算向您展示返回的格式,而不是确切的值。希望你现在明白了。干杯!
  • Bekry 考虑用更合理的预期结果编辑您的问题!

标签: python-3.x dictionary random


【解决方案1】:

这样的?

from collections import OrderedDict
import random

parameter = OrderedDict([('a', (100.0, 0.0)), ('b', (90.0, 5.0))]) 
samples = {}

for k, (mu, sigma) in parameter.items(): 
    samples[k] = random.normalvariate(mu, sigma)

>>> print(samples)
{'a': 100.0, 'b': 89.02621974794464}

【讨论】:

  • Filippo 你几乎已经完成了,只需导入 random 并使用 random.normalvariant(mu, sigma) 而不是 np.random.normal(mu,sigma)。干杯!
猜你喜欢
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 2019-01-19
  • 2013-12-20
  • 2018-05-22
  • 1970-01-01
相关资源
最近更新 更多