Julia 和 Python RAND 函数

Julia and Python RAND function

背景

在 Julia 编程中,我们有一个 Rand 函数,其 sintaxis 是:

rand([rng=GLOBAL_RNG], [S], [dims...])

从 S 指定的值集中选择一个随机元素或随机元素数组,并给出第三个参数的维度数组。

问题

我想应用相同的逻辑来模拟保证政策问题:

m = 60000
n = len(policy.AGE)
k=1/10
@time begin
    Death = zeros(Bool, m, n)
    Accident = rand(Bernoulli(k), m, n)
    for j ∈ 1:n
        Death[:, j] = rand(Bernoulli(q[policy.AGE[j]]), m)
    end
    for i ∈ 1:m
        S[i] = sum(policy.INSAMOUNT .* Death[i, :] .* (1 .+ Accident[i, :]))
    end
end

这是 Julia 代码,但是当把它带到 python 时,我找不到 rand(Bernoulli(k), m, n) 的正确形式

我知道模拟伯努利只是 bernoulli.rvs(k,n) 但是 由 S 指定的值集并给出的部分第三个参数的维度数组。

您可能想使用 size 关键字参数 rvs:

>>> from scipy.stats import bernoulli
>>> bernoulli.rvs(0.25, size=10)
array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0])