我的要求是創建一組亂數。我知道集合大小和亂數范圍。所以:
import random
def makeset(lo, hi, ss):
s = set()
while len(s) < ss:
s.add(random.randint(lo, hi))
return s
我意識到 lo、hi 和 ss 的某些組合可能會導致不可能完成的任務,但這不在此處的范圍內。
我已經開始學習 numpy 并且想知道該模塊是否提供了可以在一個步驟中執行此操作的東西 - 即,沒有顯式回圈。
但我在檔案中找不到任何東西。也許它不存在。
有什么想法嗎?
uj5u.com熱心網友回復:
您可以np.random.choice按如下方式使用,無需更換:
import numpy as np
gen = np.random.Generator(np.random.PCG64())
def with_numpy_gen(lo, hi, ss):
return gen.choice(np.arange(lo, hi 1), ss, replace=False)
uj5u.com熱心網友回復:
我們可以使用 np.random.default_rng
使用默認的 BitGenerator (PCG64) 構造一個新的生成器
import numpy as np
gen = np.random.default_rng()
def makeset(lo, hi, ss):
return set(gen.choice(np.arange(lo, hi 1), ss, replace=False))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420307.html
標籤:
上一篇:來自較大numpy陣列的唯一numpy陣列(非元素)的行索引
下一篇:過濾多年熊貓
