【问题标题】:how to make my random gaussiana distribution over one day如何在一天内使我的随机高斯分布
【发布时间】:2018-04-25 11:51:10
【问题描述】:

我想使用 python 模拟随机正态分布,但在 x 轴上,我希望分布以 14:00 hs 为中心。我知道我的分布将集中在哪里。

我的函数将接收一个时间戳并返回一个属于高斯函数的值。 Using this

【问题讨论】:

  • 函数的前两个参数你读了吗?

标签: python numpy random gaussian


【解决方案1】:

您可以使用 loc 14 和 scale 12(+- 12 小时)计算随机分布,然后将其添加为小时类型的 pandas timedelta。因此,鉴于您的时间戳,它将是

import numpy as np
import pandas as pd
timestamp + pd.Timedelta(np.random.normal(14,12),'h')

这应该可以解决问题。

编辑

如果您想从时间戳附近的高斯分布中获取一个值,您可以使用以下内容:

timestamp = pd.Timestamp('20180426140000')
np.random.normal(timestamp.hour,12)

如果你想包括会议记录

timestamp.hour + timestamp.minute/60

当然,如果你需要多个分布的一个值,那么你可以用第三个参数来提供它

np.random.normal(timestamp.hour,12,10000)

【讨论】:

  • 你好,马文。这实际上返回了一个数据时间对象,我需要返回我的 gaussiana 的值
  • 所以你想输入一个时间戳,然后在时间戳的时间点附近返回一个高斯的值?
  • 所以我想做一个函数,它的格式为高斯或钟形格式,以下午 14:00 为中心,y 轴上的最大值为 3。但是是的,该函数将接收一个时间(一天中的几个小时)并返回一个属于该曲线的数字
  • 好的,现在我实际上对您要做什么感到更加困惑。 np.random.normal 返回给定高斯分布的随机样本,因此只是一个“x”。然后有像 scipy.stats.norm 这样的函数,它们将返回给定“x”的概率密度。但是根据定义,概率不能超过 1。您当然可以构建最大值为 3 的高斯曲线,甚至可以转换 pdf 以使最大值为 3,但您究竟为什么要尝试实现这一目标?跨度>
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2015-04-22
  • 1970-01-01
  • 2020-08-24
  • 2015-09-20
相关资源
最近更新 更多