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])
背景
在 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])