试验三天中恰有两天下雨的概率(pandas、numpy)

使用Python的numpy和pandas库,通过模拟生成随机数来计算在三天中每天下雨概率为40%的情况下,恰好两天下雨的概率。通过补零和计数方法得出结果约为0.2875。
摘要由CSDN通过智能技术生成

天气预报说,在今后的三天中,每一天下雨的概率均为40%,请问这三天中恰有两天下雨的概率是多少?

用Python来模拟这种40%的概率和三天中两天下雨的情况。可以用代码随机产生0~9之间的整数随机数,用1、2、3、4表示下雨,用5、6、7、8、9、0表示不下雨。由于以三天为一组,所以我们每次生成一个三位的数字串。会用到np.random.default_rng()

由于百位以内不够三位,用zfill在前面补0,就实现了一次生成三天的情况。

然后计算这些数字字符中1~4(意为下雨)的数量,筛选值为2的数据。

import pandas as pd
import numpy as np

rng=np.random.default_rng()   #定义随机对象
days=100000                   #随机天数
arr=rng.integers(0,1000,days) #生成随机数字

(
    pd.DataFrame()
    .assign(x=arr)            #把随机数字增加到列
    .astype(str)              #转为字符
    .assign(x=lambda d:d.x.str.zfill(3))               #在不足三位的数字前补0
    .assign(a=lambda d:d.x.str.count(r'1|2|3|4'))      #统计数字串1~4(下雨)的数量
    .query('a==2')            #筛选出两天下雨的数据
)

 最后与总数据(天数)相比得到结果:

len(_)/days

'''
0.2875
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值