读入数据
代码如下(示例):
#先通过组合数计算得概率:
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()
)
#我们可以看到值为 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 的概率最大。