簡體   English   中英

np.random.choice 排除某些數字?

[英]np.random.choice exclude certain numbers?

我應該創建代碼來模擬使用np.random.choice滾動 25 次的 d20 面骰子。

我試過這個:

np.random.choice(20,25)

但這仍然包括不會出現在骰子上的 0。

我如何解釋0?

使用np.arange

import numpy as np

np.random.seed(42)  # for reproducibility

result = np.random.choice(np.arange(1, 21), 50)
print(result)

輸出

[ 7 20 15 11  8  7 19 11 11  4  8  3  2 12  6  2  1 12 12 17 10 16 15 15
 19 12 20  3  5 19  7  9  7 18  4 14 18  9  2 20 15  7 12  8 15  3 14 17
  4 18]

上面的代碼繪制從 0 到 20 的數字。 要了解原因,您可以查看np.random.choice的文檔,尤其是第一個參數:

a : 一維數組或 int

如果是 ndarray,則從其元素生成隨機樣本。 如果是 int,則生成隨機樣本,就好像 a 是 np.arange(n)

np.random.choice() 將可能的選擇數組作為它的第一個參數(如果給定 int,它的工作方式類似於 np.arrange),因此您可以使用 list(range(1, 21)) 來獲得您想要的輸出

+1

np.random.choice(20,25) + 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM