【问题标题】:Julia and Python RAND functionJulia 和 Python RAND 函数
【发布时间】:2021-02-14 01:20:12
【问题描述】:

背景

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

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

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

问题

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

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 指定的一组值并给出第三个参数的维度数组的部分。

【问题讨论】:

    标签: python statistics julia simulation


    【解决方案1】:

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

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

    【讨论】:

    • 我知道,但是如何指定从另一组指定的值中获取值?
    • 那我不明白这个问题。只需将rand(Bernoulli(q[policy.AGE[j]]), m) 重写为bernoulli.rvs(q[policy.AGE[j]], size=m) 假设q[policy.AGE[j]] 也可以在Python 中工作(您没有展示您使用的Python 实现)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多