Python numpy根据概率生成一个随机二进制值数组

Python numpy根据概率生成一个随机二进制值数组,python,arrays,numpy,random,Python,Arrays,Numpy,Random,有什么方法可以在一行中完成以下操作? 假设我有一系列的概率 p=np.array([0.75, 0.63, 0.33, 0.25, 0.47]) 其中,每个值对应于选择1的概率,(1-p)对应于选择0的概率,即,0.75是选择1的概率,1-0.75是选择0的概率,0.63是选择1,1-0.63是选择0,依此类推。有没有更简单的方法让我做到以下几点,希望没有循环 values = np.empty(p.shape) for i, prob in enumerate(p): values[

有什么方法可以在一行中完成以下操作? 假设我有一系列的概率

p=np.array([0.75, 0.63, 0.33, 0.25, 0.47])
其中,每个值对应于选择1的概率,(1-p)对应于选择0的概率,即,0.75是选择1的概率,1-0.75是选择0的概率,0.63是选择1,1-0.63是选择0,依此类推。有没有更简单的方法让我做到以下几点,希望没有循环

values = np.empty(p.shape)
for i, prob in enumerate(p):
    values[i] = np.random.binomial(1, prob)

我知道它可以用map来完成,但是有没有一种方法可以直接用numpy来完成呢?

我从来不知道它可以用一系列概率来完成。我应该把文档读得更好。我很抱歉。非常感谢,不用担心。这不是你的错-ipython中的文档指定它应该是一个float,但numpy中的大多数操作都是设计为可广播的,因此值得尝试一下,即使文档中说了其他内容。
values = np.random.binomial(1, p)