推 vfgce: python的random.choice()是從seqenuce中隨機取一個,當然 03/20 11:46
→ vfgce: 沒有replace的問題,你要取多個但不重覆,就用random.sample 03/20 11:47
→ vfgce: 我想你記錯函數了,numpy的random.choice才有replace選項 03/20 11:48
ok 看來我搞混兩種 random 了。
random.sample() 是有這個功能,
可是我希望的是在迴圈內每次隨機抓到的都是不重複的,
random.sample() 是一口氣隨機抓 k 個 items。
※ 編輯: henry8168 (60.248.17.229), 03/20/2018 12:37:43
推 vfgce: 請問每次迴圈不重複和一次抓k個,再來迴圈,有差別嗎? 03/20 13:36
→ vfgce: repalce參數本來就是為了一次抓多個.... 03/20 13:38
→ vfgce: numpy的random.choice也是一次抓多個... 03/20 13:39
因為我 sample 的對象是 list,那其實先 random.shuffle() 過後,再依序存取也可吧
這樣 replace 參數也幫不上忙了 orz
※ 編輯: henry8168 (60.248.17.229), 03/20/2018 15:08:27
推 goldflower: 寫個random.shuffle(list(range(n)))用這當sample? 03/20 15:40
→ goldflower: 如果你不想動你原本的array的話啦 03/20 15:40
推 vfgce: 用random.choice本來就沒動到原先的list. 03/20 16:10
→ vfgce: 你要用shuffle再迴圈也可,但一來原先list改變過,二來後面 03/20 16:11
→ vfgce: 要迴圈時,要指定range(k),用numpy的random.choice或python 03/20 16:15
→ vfgce: random.sample傳回新LIST,不改變舊LIST,迴圈時直接使用整個 03/20 16:17
→ vfgce: 新LIST,不用指定RANGE 03/20 16:17
→ vfgce: 你若使用numpy的random.choice還是得指定replace=False, 03/20 16:19
推 vfgce: 預設是True. 03/20 16:20