【问题标题】:Python numpy random numbers probabilityPython numpy 随机数概率
【发布时间】:2018-01-09 07:55:10
【问题描述】:
Python 3.6.1 :: Anaconda custom (64-bit)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mtptlb

print (np.__version__)
1.12.1
print (mtptlb.__version__)
2.0.2

%matplotlib inline
a=np.random.uniform(1,100,1000000)
b=range(1,101)
plt.hist(a)

为什么Y轴显示100000? np.random.uniform(1,100,1000000) 的值是 1000000,所以它不应该在 y 轴上显示 1000000 吗?

【问题讨论】:

    标签: python python-3.x numpy matplotlib random


    【解决方案1】:

    默认情况下matplotlib.pyplot.hist 使用 10 个 bin。所以你所有的 100 万个值都被分配到 10 个 bin 中。对于完美的均匀分布,您会期望在每个 bin 中出现 10 万次(100 万除以 10)。

    您可以更改垃圾箱的数量,即

    a=np.random.uniform(1, 100, 1000000)
    plt.hist(a, bins=100)
    

    这里它被分成 100 个 bin,因为它是一个均匀分布,所以所有 bin 大约都在 10000 个。

    如果您想要计数为 1 000 000,则只需一个 bin:

    a=np.random.uniform(1, 100, 1000000)
    plt.hist(a, bins=1)
    

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 1970-01-01
      • 2016-04-29
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 2017-05-16
      • 1970-01-01
      相关资源
      最近更新 更多