我有一個隨機數組。我只想改變一些基於概率0.07的元素。目前我正在使用for循環遍歷每個元素。有沒有更好的方法來做到這一點?NumPy更改具有給定概率的數組的元素
1
A
回答
6
如果有問題的數組被稱爲a
,您可以通過
a[numpy.random.rand(*a.shape) < 0.07]
選擇其值的0.07的平均比例,我不知道怎麼你要改變這些值。爲了將它們乘以兩,只要做
a[numpy.random.rand(*a.shape) < 0.07] *= 2.0
2
斯文的答案是優雅的。然而,它的速度要快得多來挑選要與
n = numpy.random.binomial(len(a), 0.07)
a[numpy.random.randint(0, len(a), size=n)] *= 2.0
第一表達決定要多少個元素進行採樣以改變元件(n爲(a)中,但平均0.07 0和len之間的整數),第二個生成正好你想要檢索的索引數量。 (請注意,但是,你可能會得到同樣的指數幾次。)
到
的差異a[numpy.random.rand(len(a)) < p]
爲p接近1變小,但對於小P,它可能是10倍或更多。
相關問題
- 1. 給定概率與numpy隨機位數組
- 2. 在numpy數組中更改元素
- 3. 從數組中隨機選擇一個元素,每個元素具有特定的概率
- 4. 給定概率的樣本
- 5. Python的numpy的隨機數的概率
- 6. 將relu函數傳遞給numpy數組的所有元素
- 7. 查找具有多個條件的numpy數組中的元素
- 8. 在Perl中繪製具有給定概率的字符
- 9. 如何更改傳遞給python C擴展的numpy數組元素?
- 10. 從numpy數組中選擇具有多個條件的元素
- 11. 給出數組元素獲取numpy的陣列的具體指標爲整數
- 12. 給定數量的添加的給定答案的總概率
- 13. 根據給定列中的值更改一個numpy數組?
- 14. 使用numpy的一組值的概率密度函數
- 15. ,其具有相等的第一列組2D numpy的數組元素的值
- 16. 數組的概率C++
- 17. 更改所有包含特定字符串的數組元素
- 18. python數組條件更改元素檢查numpy
- 19. 結合numpy數組元素?
- 20. 用numpy數組替換1d numpy數組中的元素
- 21. 如何在一組DOM元素中找到具有給定ID的元素?
- 22. numpy數組的壓縮率
- 23. 如何生成具有不同概率的向量。每個元素的分佈
- 24. 更改具有指定編號的每個元素的innerHTML
- 25. 生成具有一定概率的隨機數
- 26. 熊貓 - 給定具體b的條件概率
- 27. 刪除給定數組中的元素
- 28. numpy的功能,數組中的元素設置爲給定的指標
- 29. 如何刪除numpy數組中所有numpy數組中的第n個元素?
- 30. jquery操作具有給定模式的元素的數量
太棒了!謝謝。我只是想將它們更改爲其他隨機值。這比我的循環好得多。 – wot 2012-07-20 21:21:42
請注意,單獨更改元素與概率* p *並更改「其值的比例* p *」之間存在差異。我認爲顯示的代碼是前者。 – 2012-07-20 21:38:12
@tc如何完成後者? – wot 2012-07-20 21:50:24