栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy(离散型随机变量)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy(离散型随机变量)

numpy.random.seed(seed=None) :可以使生成的随机数相同
seed值有效次数只有一次,如果要保证每次随机数的值都相同,要在调用之前再次使用seed函数

np.random.seed(1)
x=np.random.randint(1,10,5)
[6 9 6 1 1]
假设我不使用seed函数
x=np.random.randint(1,10,5)
[2 8 7 3 5]
当我使用时
np.random.seed(1)
x=np.random.randint(1,10,5)
[6 9 6 1 1]
离散型随机变量

二项分布
用于只有一次实验只有两种结果,各结果对应的概率相等的多次实验的概率问题
np.random.binomial(n, p, size)
n:做了n重伯努利试验,做某件事的次数
p:成功的概率
size:做该实验的次数

模拟投硬币,投2次,请问两次都为正面的概率
n = 2 做某件事情的次数,这里是投两次硬币
p = 0.5做某件事情成功的概率,在这里即投硬币为正面的概率
size = 50000 进行了50000的实验
x = np.random.binomial(n, p, size)
x=0:意味着在这一次实验中,投了两次硬币,结果均为反面
x=1,x=2同理
np.sum(x == 2) / size 计算得最终概率

泊松分布
用于估计某个时间段某事件发生的概率
np.random.poisson(lam, size)
lam:单位内发生事件的均值
size:做该实验的次数,采样次数
返回值:一个单位内事件发生的次数

假定某航空公司预定票处平均每小时接到42次订票电话,那么10分钟内恰好接到6次电话的概率是多少
lam = 42/6
size = 5
x = np.random.poisson(lam, size)
[10  7  6  6  3]十分钟内接到电话的次数

超几何分布
各次实验不是独立的,各次实验成功的概率也不等
np.random.hypergeometric(ngood, nbad, nsample, size=None)
ngood:总体中成功的元素个数
nbad:总体中失败的元素个数
nsample:抽取元素的次数(<=总量)
size:采样次数
返回值:nsample中成功元素的个数

连续型随机变量

均匀分布
np.random.uniform(low,high,size=)
均匀分布于半开区间[low, high)
正态分布
np.random.randn(size)
根据指定大小产生满足标准正态分布的数组(均值为0,标准差为1)
指数分布
用于表示:时间发生的时间长度间隔
np.random.exponential(scale=, size)
从指数分布中抽取样本

lam = 7
size = 10
x = np.random.exponential(1 / lam, size)
[0.1111193  0.2071766  0.00662943 0.0215405  0.2245942  0.00432206
 0.30666491 0.11117767 0.08488162 0.31812613]
 y = (np.sum(x < 1 / 7)) / size 0.6
其他随机函数

np.random.choice:随机从序列中获取元素
np.random.choice(a, size=None, replace=True, p=None)
a:若为整数则相当于从np.range(a)中随机获取元素
size:获取的数量
replace:是否重复获取
p:元素被选取的概率

x = np.random.choice(10, 3)
print(x)  # [2 0 1]

x = np.random.choice(10, 3, p=[0.05, 0, 0.05, 0.9, 0, 0, 0, 0, 0, 0])
print(x)  # [3 2 3]

x = np.random.choice(10, 3, replace=False, p=[0.05, 0, 0.05, 0.9, 0, 0, 0, 0, 0, 0])
print(x)  # [3 0 2]

np.random.shuffle:对数据集进行洗牌操作

x = np.arange(10)
[0 1 2 3 4 5 6 7 8 9]
np.random.shuffle(x)
[6 2 3 0 1 9 5 8 7 4]
注:如果x为多维数组,只沿第 0 轴洗牌,改变原来的数组,输出为None
print(np.random.shuffle(np.arange(10)))
None
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号