Víc*_*rro 7 python random numpy scipy weibull
我想知道如何在 python 中生成带有 2 参数(lambda,k)的随机威布尔分布。我知道 numpy 有一个numpy.random.weibull,但它只接受 a参数作为分布的形状。
好吧,如果您从缺少尺度参数的威布尔分布中采样一个数字(假设尺度等于 1),那么要得到它,需要将尺度乘以 lambda。
x = numpy.random.weibull(a)
return lambda*x
Run Code Online (Sandbox Code Playgroud)
Severin Pappadeux 的答案可能是包含比例参数的最简单方法。另一种方法是使用scipy.stats.weibull_min. weibull_min具有三个参数:形状、位置和尺度。您只需要形状和比例,因此您可以将位置设置为 0。
from scipy.stats import weibull_min
n = 100 # number of samples
k = 2.4 # shape
lam = 5.5 # scale
x = weibull_min.rvs(k, loc=0, scale=lam, size=n)
Run Code Online (Sandbox Code Playgroud)