seed用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed()值,则每次生成的随机数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
numpy.random.binomial(n, p, size=None)
表示对一个二项分布进行采样,size表示采样的次数,n表示做了n重伯努利试验,p表示成功的概率,函数的返回值表示n中成功的次数。
numpy.random.poisson(lam=1.0, size=None)
表示对一个泊松分布进行采样,size表示采样的次数,lam表示一个单位内发生事件的平均值,函数的返回值表示一个单位内事件发生的次数。
numpy.random.hypergeometric(ngood, nbad, nsample, size=None)
表示对一个超几何分布进行采样,size表示采样的次数,ngood表示总体中具有成功标志的元素个数,nbad表示总体中不具有成功标志的元素个数,ngood+nbad表示总体样本容量,nsample表示抽取元素的次数(小于或等于总体样本容量),函数的返回值表示抽取nsample个元素中具有成功标识的元素个数。
numpy.random.uniform(low=0.0, high=1.0, size=None)
在low到high的范围内形成size个随机数
若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
numpy.random.normal(loc=0.0, scale=1.0, size=None)
为创建均值为 loc(mu),标准差为 scale(sigma),大小为 size 的数组。
numpy.random.choice(a, size=None, replace=True, p=None)
从序列中获取元素,若a为整数,元素取值从np.range(a)中随机获取;若a为数组,取值从a数组元素中随机获取。该函数还可以控制生成数组中的元素是否重复replace,以及选取元素的概率p。
numpy.random.shuffle(x)
对x进行重排序,如果x为多维数组,只沿第 0 轴洗牌,改变原来的数组,输出为None。
课后习题:
1
import numpy as np
np.random.seed(20200605)
a=np.random.uniform(low=5, high=10, size=(5,3))
print(a)
2
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(20200605)
x=np.random.uniform(low=-10,high=10,size=5000)
a=np.random.uniform(low=-0.2,high=0.2,size=5000)
y=np.sin(x)/x
plt.scatter(x,y,color='red',s=10)
y+=a
plt.scatter(x,y,color='blue',s=1)
plt.show()