如何增加scipy.stats.randint的步数?
How to increase the steps of scipy.stats.randint?
我正在尝试生成一个冻结的离散均匀分布(如 stats.randint(low, high)
)但步长高于一个,有什么方法可以用 scipy 做到这一点吗?
我认为它可能类似于 hyperopt 的 hp.uniformint
.
rv_discrete(values=(xk, pk))
构造一个支持度 xk
和可证明性 pk
.
的分布
查看文档中的示例:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_discrete.html
IIUC 您想生成一个具有步长的统一离散变量(例如,step=3,low=2 和 high=10 给出 [2,5,8] 的宇宙)
您可以生成不同的统一变量并重新缩放:
from scipy import stats
low = 2
high = 10
step = 3
r = stats.randint(0, (high-low+1)//step)
low+r.rvs(size=10)*step
示例输出:array([2, 2, 2, 2, 8, 8, 2, 5, 5, 2])
我正在尝试生成一个冻结的离散均匀分布(如 stats.randint(low, high)
)但步长高于一个,有什么方法可以用 scipy 做到这一点吗?
我认为它可能类似于 hyperopt 的 hp.uniformint
.
rv_discrete(values=(xk, pk))
构造一个支持度 xk
和可证明性 pk
.
查看文档中的示例: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_discrete.html
IIUC 您想生成一个具有步长的统一离散变量(例如,step=3,low=2 和 high=10 给出 [2,5,8] 的宇宙)
您可以生成不同的统一变量并重新缩放:
from scipy import stats
low = 2
high = 10
step = 3
r = stats.randint(0, (high-low+1)//step)
low+r.rvs(size=10)*step
示例输出:array([2, 2, 2, 2, 8, 8, 2, 5, 5, 2])