如何在一天内制作随机高斯分布
how to make my random gaussiana distribution over one day
我想使用 python 模拟随机正态分布,但在 x 轴上,我希望分布以 14:00 hs 为中心,例如。我知道我的分布将集中在哪里。
我的函数将收到一个时间戳和 return 一个属于高斯函数的值。 Using this
您可以使用 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)
我想使用 python 模拟随机正态分布,但在 x 轴上,我希望分布以 14:00 hs 为中心,例如。我知道我的分布将集中在哪里。
我的函数将收到一个时间戳和 return 一个属于高斯函数的值。 Using this
您可以使用 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)