Python 概率基础
Alexander A. Ramírez M.
CEO @ Synergy Vision
…用抛硬币来直观理解

正面或反面

伯努利随机试验
from scipy.stats import bernoulli
bernoulli.rvs(p=0.5, size=1)
array([0])
再抽一次
bernoulli.rvs(p=0.5, size=1)
array([1])
将 size 参数调大以抛更多…
bernoulli.rvs(p=0.5, size=10)
array([0, 0, 0, 0, 0, 0, 1, 1, 0, 0])
有多少次正面?
sum(bernoulli.rvs(p=0.5, size=10))
5
再抽一次…
sum(bernoulli.rvs(p=0.5, size=10))
2
二项随机变量
from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1)
array([7])
多次抽样
binom.rvs(n=10, p=0.5, size=10)
array([6, 2, 3, 5, 5, 5, 5, 4, 6, 6])
偏置硬币的抽样
binom.rvs(n=10, p=0.3, size=10)
array([3, 4, 3, 3, 2, 2, 2, 2, 3, 6])
rvs() 的 random_state 参数from scipy.stats import binom
binom.rvs(n=10, p=0.5, size=1, random_state=42)
numpy.random.seed()import numpy as np
np.random.seed(42)
设定种子后抛 10 次公平硬币
from scipy.stats import binom
import numpy as np
np.random.seed(42)
binom.rvs(n=10, p=0.5, size=1)
array([4])
Python 概率基础