首页 > 解决方案 > 如何在一天内使我的随机高斯分布

问题描述

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

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

标签: pythonnumpyrandomgaussian

解决方案


您可以使用 loc 14 和比例 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)

推荐阅读