034—pandas 试验一次扔两个骰子和为多少的概率最大

前言

经典的掷骰子试验是我在学习概率中经常接触的例子,这是利用了骰子在赌博游戏中的随机性,方便我们理解概率的意义。

#今天,我们用 Python 来做一个实验,一次掷出两个骰子,每次计算所得点数的和,从而得到这些和的概率。

思路:

上边的问题符合经典概率模型,我们可以通过组合数的方法进行计算,先列出所有情况的组合,即笛卡尔积,然后计算他们的和,再求出这不同和的频数和频率。另外,还可以直接进行模拟试验,生成试验数据,然后相加最终得到实验样本值。

二、使用步骤

读入数据

代码如下(示例):

python 复制代码
#先通过组合数计算得概率:
import pandas as pd
import numpy as np

pd.__version__
# '1.2.1'

# 一次扔两个六面骰子, 和为多少的概率最大? 7 的可能性最大
midx = (pd.MultiIndex
        .from_product(([1,2,3,4,5,6],
                       [1,2,3,4,5,6]),
                      names=['a', 'b'])
       )
(
    pd.DataFrame(index=midx)
    .reset_index()#当数据不再是连续的索引时,可以使用reset_index()重置索引。
    .assign(c=lambda d: d.eval('a+b'))
    .c
    .value_counts()#value-counts () 方法会返回该列每个项的计数。
    .plot
    .bar()
)
python 复制代码
#我们可以看到值为 7 的最多,有 6 个。接下来进行实验,用 numpy 生成随机数据再进行计算。
rng = np.random.default_rng()#随机数的产生需要先创建一个随机数生成器

# 投掷,1 万次
one = rng.integers(1,7, size=10000)#创建随机一维整数
two = rng.integers(1,7, size=10000)

# 查看单次的频数,频数几乎相同
pd.Series(one).hist()
pd.Series(two).hist()

# 相加,7 频数最大
pd.Series(one + two).hist()
#最终得知,一次投两个骰子,和为 7 的概率最大。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐
benchmark_cc2 天前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
benchmark_cc2 天前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
databook5 天前
经常听到的透视表是干什么的?
python·数据分析·pandas
benchmark_cc6 天前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
benchmark_cc6 天前
用 00700.HK 做港股行情清洗:字段核对、校验与个人量化开发实践
python·数据分析·pandas·量化交易·股票数据·quantdash
第九序言T7 天前
数据分析岗 Pandas 面试题 20 道(上):概念与读代码
python·数据分析·pandas·数据处理
2601_966949657 天前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
Blockbuater_drug7 天前
《经典机器学习实战》第 2 课:回归入门——环境、工具与数据准备
线性回归·pandas·scikit-learn·数据可视化·数据清洗·最小二乘法·conda环境
烂蜻蜓7 天前
Pandas入门教程(十六):常用函数速查手册——读写、清洗、选择、排序、分组与统计
pandas
quantdash_cc8 天前
个人开发者用 QuantDash 读取港股行情:00700.HK 的 Python 函数封装与校验实践
python·数据分析·pandas·量化交易·股票数据·quantdash