Numpy
中经常使用到的两个模块是概率模块和线性代数模块,random
和 linalg
两个模块。
概率模块
-
产生
二项分布
的随机数:np.random.binomial(n,p,size=…)
,其中n,p,size分别是每轮试验次数、概率、轮数 -
产生超几何分布
随机数
:np.random.hypergeometric(n1,n2,n,size=…)
,其中参数意义分别是物件1总量、物件2总量、每次采样数、试验次数 -
产生N个正态分布的随机数:
np.random.normal
(均值,标准差,N) -
产生N个对数正态分布的随机数:
np.random.lognormal(mean,sigma,N)
例子
-
生成随机数
import numpy as np
a = np.random.random(size=10)
print a
print a.reshape(2,5)[0.49377182 0.77456027 0.21313427 0.79165445 0.27105407 0.75815576
0.44956657 0.7455359 0.95411294 0.75944278]
[[0.49377182 0.77456027 0.21313427 0.79165445 0.27105407]
[0.75815576 0.44956657 0.7455359 0.95411294 0.75944278]] -
正态分布
使用生成正态分布的数据,并展现出来:
>>> import seaborn as sns
>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> np.random.seed(2000)
>>> zt = np.random.normal(loc = 0, scale = 1, size = 2000)
>>> sns.distplot(zt, hist = False, kde = False, fit = stats.norm, fit_kws = {'color':'black','label':'normal distribution','linestyle':'-'})
<matplotlib.axes._subplots.AxesSubplot object at 0x0C509810>
>>>
>>> plt.legend()
<matplotlib.legend.Legend object at 0x06A8BC90>
>>> plt.show()