Python 機率基礎
Alexander A. Ramírez M.
CEO @ Synergy Vision
……用擲硬幣來理解

正面或反面

Bernoulli 隨機實驗
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 機率基礎