簡體   English   中英

如何使用 numpy 創建一個非重復隨機數矩陣,同時在這些隨機數之間有一個范圍?

[英]How do I create a matrix of non-repeating random numbers with numpy, while having a range between these random numbers?

這行代碼已經創建了一個 3x3 矩陣,其中填充了 0 到 8 之間的隨機數,但其中一些是重復的。 如何阻止這種情況?

initStateRandom = np.random.randint(9, size=(3,3))

您可以使用來自np.randomchoice function,請參閱文檔 您可以為范圍或任何 ndarray 傳入一個 int。

import numpy as np

r_array = np.random.choice(9, size=(3, 3), replace=False)  # int
r_array = np.random.choice(np.arange(10, 100), size=(3, 3), replace=False)  # ndarray

您也可以使用“np.random.shuffle”。 它就地工作,並且僅沿多維 arrays 的一維工作,因此您需要像這樣洗牌一個臨時的一維數組:

    import numpy as np

    tmp=np.arange(9)
    np.random.shuffle(tmp)
    mat=np.reshape(tmp,[3,3])

暫無
暫無

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

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