gpt4 book ai didi

python - 创建具有左偏概率分布的随机数

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:32 28 4
gpt4 key购买 nike

我想在 1-100 之间随机选择一个数字,这样获得数字 60-100 的概率高于 1-59。

我想得到数字 1-100 呈左偏分布的概率。也就是说,它有长尾部和尖峰。

沿线的东西:

pers = np.arange(1,101,1)
prob = <left-skewed distribution>
number = np.random.choice(pers, 1, p=prob)

我不知道如何生成左偏离散概率函数。有任何想法吗?谢谢!

最佳答案

这就是您使用 SciPy 函数“skewnorm”寻找的答案。它可以使任何正整数集向左或向右倾斜。

from scipy.stats import skewnorm
import matplotlib.pyplot as plt

numValues = 10000
maxValue = 100
skewness = -5 #Negative values are left skewed, positive values are right skewed.

random = skewnorm.rvs(a = skewness,loc=maxValue, size=numValues) #Skewnorm function

random = random - min(random) #Shift the set so the minimum value is equal to zero.
random = random / max(random) #Standadize all the vlues between 0 and 1.
random = random * maxValue #Multiply the standardized values by the maximum value.

#Plot histogram to check skewness
plt.hist(random,30,density=True, color = 'red', alpha=0.1)
plt.show()

请引用此处的文档: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.skewnorm.html

Histogram of left-skewed distribution

代码生成以下图。

enter image description here

关于python - 创建具有左偏概率分布的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854965/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com