多个二项随机变量的矢量化采样

时间:2015-06-25 22:48:28

标签: python numpy random

我想抽样几百个二叉分布的随机变量,每个变量都有不同的 n p (使用{{3}中定义的参数名称} docs)。我会反复这样做,所以我想尽可能地渲染代码。这是一个例子:

import numpy as np

# Made up parameters
N_random_variables = 500
n_vals = np.random.random_integers(100, 200, N_random_variables)
p_vals = np.random.random_sample(N_random_variables)

# Can this portion be vectorized?
results = np.empty(N_random_variables)
for i in xrange(N_random_variables):
    results[i] = np.random.binomial(n_vals[i], p_vals[i])

在每个随机变量的 n p 相同的特殊情况下,我可以这样做:

import numpy as np

# Made up parameters
N_random_variables = 500
n_val = 150
p_val = 0.5

# Vectorized code
results = np.random.binomial(n_val, p_val, N_random_variables)

这可以推广到 n p 为每个随机变量取不同值的情况吗?

1 个答案:

答案 0 :(得分:3)

你走了,

action