11
考慮兩個1-dim數組,其中一個具有可供選擇的項目,另一個包含繪製另一個列表項目的概率。如何從Julia的加權數組中選擇一個隨機項目?
items = ["a", 2, 5, "h", "hello", 3]
weights = [0.1, 0.1, 0.2, 0.2, 0.1, 0.3]
在利亞,如何可以使用一個到weights
重量繪製的給定項目的概率隨機地選擇在items
的項目?
考慮兩個1-dim數組,其中一個具有可供選擇的項目,另一個包含繪製另一個列表項目的概率。如何從Julia的加權數組中選擇一個隨機項目?
items = ["a", 2, 5, "h", "hello", 3]
weights = [0.1, 0.1, 0.2, 0.2, 0.1, 0.3]
在利亞,如何可以使用一個到weights
重量繪製的給定項目的概率隨機地選擇在items
的項目?
使用StatsBase.jl
包,即
Pkg.add("StatsBase") # Only do this once, obviously
using StatsBase
items = ["a", 2, 5, "h", "hello", 3]
weights = [0.1, 0.1, 0.2, 0.2, 0.1, 0.3]
sample(items, WeightVec(weights))
或者,如果你想品嚐到許多:
# With replacement
my_samps = sample(items, WeightVec(weights), 10)
# Without replacement
my_samps = sample(items, WeightVec(weights), 2, replace=false)
您可以瞭解更多關於WeightVec
,爲什麼它存在in the docs。 StatsBase
中的採樣算法非常高效,可根據輸入的大小使用不同的方法。
@Prix感謝您的更新。在這個問題的標題中註明興趣語言是否很重要?也許在問題結尾的括號中? – 2014-12-19 05:02:11
好的,謝謝。事實上,能夠訂購標籤真是太棒了。 – 2014-12-19 05:09:09
希望你喜歡這樣,我覺得沒有理由不在那裏,所以我想它歸結爲個人喜好;) – Prix 2014-12-19 05:15:24