gpt4 book ai didi

python - Randint 并不总是遵循均匀分布

转载 作者:IT老高 更新时间:2023-10-28 21:41:35 37 4
gpt4 key购买 nike

我正在用 Python 中的随机库来模拟我工作的项目,我发现自己处于一个非常奇怪的位置。

假设我们在 Python 中有以下代码:

from random import randint
import seaborn as sns

a = []
for i in range(1000000):
a.append(randint(1,150))

sns.distplot(a)

该图应遵循“离散均匀”分布。

Range betwee 1 and 150

但是,当我将范围从 1 更改为 110 时,该图有几个峰值。

from random import randint
import seaborn as sns

a = []
for i in range(1000000):
a.append(randint(1,110))

sns.distplot(a)

Range from 1 to 110

我的印象是峰值在 0,10,20,30,... 但我无法解释。

编辑:这个问题与提议的问题不相似,因为我的问题是 seaborn 库和我可视化数据的方式。

编辑 2:按照答案的建议,我尝试通过更改 seaborn 库来验证它。相反,使用 matplotlib 两个图是相同的

from random import randint
import matplotlib.pyplot as plt

a = []
for i in range(1000000):
a.append(randint(1,110))

plt.hist(a)

From matplotlib

最佳答案

问题似乎出在您的绘图员 seaborn 上,而不是 randint() 上。

根据我的统计,您的 seaborn 分布图中有 50 个箱。似乎 seaborn 实际上是将您返回的 randint() 值分箱到这些箱中,并且无法将 110 个值均匀分布到 50 个箱中。因此,您会得到将三个值放入一个箱中的峰值,而不是其他箱中通常的两个值。您的峰值值证实了这一点:它们比其他条形高 50%,正如预期的 3 个分箱值而不是 2 个。

另一种检查方法是强制 seaborn 为这 110 个值使用 55 个 bin(或者可能是 10 个 bin 或 110 的其他除数)。如果你仍然得到峰值,那么你应该担心 randint()

关于python - Randint 并不总是遵循均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100287/

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