Noa*_*tar 7 python random performance multithreading numpy
我想在我的项目中使用以下示例,该示例使用多个线程使用随机值填充数组。 https://numpy.org/doc/1.18/reference/random/multithreading.html。
但是,我想使用二项式分布而不是标准正态分布。我的问题是方法numpy.random.Generator.binomial没有放置结果的“out”参数(如standard_normal方法)。这意味着我必须将提供给我的输出矩阵复制到我的矩阵中,从而严重降低性能。
有没有替代方法可以解决这个问题?
如果这有帮助,我实际上需要伯努利分布,即二项式分布中的 n=1(但任意 p)。
小智 0
out如果你想在 中绘制统一的浮点数,numpy.random.Generator.random有一个参数[0.0,1.0)。
然后你就可以使用:
def bernoulli(shape, p):
    U = uniform(shape) # can use multithreading
    return U < p       # should be fast enough