之間的值,我有某事像這樣:蟒蛇,SciPy的 - 如何與概率返回2個值
empty=0
full=1
burn=2
myprob=0.7
if cell==burn:
return (empty or full) with probability myprob
我該怎麼辦呢? 謝謝!
之間的值,我有某事像這樣:蟒蛇,SciPy的 - 如何與概率返回2個值
empty=0
full=1
burn=2
myprob=0.7
if cell==burn:
return (empty or full) with probability myprob
我該怎麼辦呢? 謝謝!
表達
numpy.random.random() < myprob
將評估爲True
概率myprob
。由於False
和True
解釋爲整數的0
和1
,您可以使用
[empty, full][numpy.random.random() < myprob]
與給定的概率兩個給定值之間進行選擇。對於您的特定值empty
和full
,第一個表達式基本上會做同樣的事情 - 如果empty
和full
分別不是0
和1
,則只需要第二個表達式。
我不是很確定我理解你的問題。在您的代碼:
return (empty or full) with probability myprob
(empty or full) #will always be 1
所以我要假設你想要的東西:
0.7 = 70時代%的回報空 0.3 = 30時代%返回完整
如果這是你想要什麼,你需要做的是:
from random import random
if cell==burn:
return (random() > my_prob)
random()
將返回0-> 1之間的數字。如果您從0/1的差異值爲empty
和full
,則只需執行額外的if
條件。
:謝謝你的回答。我選擇了另一個,因爲它具有[empty,full] [numpy.random.random()
看看http://docs.python.org/library/random,看看你是否可以解決問題。 – 2012-02-15 12:49:53
我的意思是儘可能最好的方式,但你可以想象,在問這裏的問題後,你會開始理解一些關於什麼構成了一個關於stackoverflow的好問題,以及如何表達一個問題以便回答問題可以很容易地理解你在問什麼,並給你一個相關的答案。我會要求你閱讀這個評論,然後立即重新閱讀你的問題,然後想想如何編輯它,這樣別人可以得到你所問的關於最隱祕的想法。 – talonmies 2012-02-15 12:53:32
@talonmies:我試着寫得儘可能好。但這並非總是可能的(出於多種原因)。但是,有些人似乎明白我想問什麼。我想我是「清楚的」。返回「(空或全),概率爲myprob」。或許你誤會了我的意思,因爲我在代碼中有這個意思嗎?當然,在你的意見之後,我會努力做得更好!沒有任何硬性的感覺,請始終糾正我的問題,我的代碼等 – George 2012-02-15 13:20:27