Python numpy随机数概率

ano*_*on1 1 python random numpy matplotlib python-3.x

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

为什么Y轴显示100000?np.random.uniform(1100,百万)具有值百万,因此不应该它显示在y轴上百万?

MSe*_*ert 7

默认情况下matplotlib.pyplot.hist使用10个bin.因此,所有100万个值都分配到10个箱中.为了获得完美的均匀分布,您可以预期每个箱中有100k次出现(100万次除以10).

你可以改变箱子的数量,即

a=np.random.uniform(1, 100, 1000000)
plt.hist(a, bins=100)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这里,它分为100个箱子,因为它是均匀分布,所有箱子大约都是10000个.

或者如果你想要1 000 000的计数,只需一个垃圾箱:

a=np.random.uniform(1, 100, 1000000)
plt.hist(a, bins=1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述