Python中R的函数“replicate”的等价物是什么?

2024-09-26 22:50:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图翻译一些代码来用Python进行Monte Carlo模拟,具体如下,但我很难找到等效的函数复制到我的Jupyter笔记本中

estima_probabilidad <- function(clase, num_veces = 10000){
    resultados <- replicate(num_veces, {    # Retorna un vector lógico
        colegas <- sample(dias, clase, replace = TRUE)
        any(duplicated(colegas))
    })

    # Probabilidad:
    mean(resultados) 
}

estima_probabilidad(25)
#> [1] 0.572```

Tags: 函数代码笔记本jupyterfunctionnummontecarlo
1条回答
网友
1楼 · 发布于 2024-09-26 22:50:36

在R中,replicate是围绕sapply的包装器,它本身只是一个伪装的(优化的)for循环。因此,要在Python中实现replicate,需要使用for循环

例如:

在R

replicate(5, 0:2, simplify = FALSE)

用Python

[[*range(3)] for _ in range(5)]
#[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

或者更抽象地/一般地:[your_custom_Python_function_returning_a_list for _ in range(5)]翻译成replicate(5, your_vectorised_custom_R_function, simplify = FALSE)

注:您的R代码不可复制dias似乎是在别处定义的全局变量

相关问题 更多 >

    热门问题