【发布时间】:2020-09-07 12:56:57
【问题描述】:
这行代码已经创建了一个 3x3 矩阵,其中填充了 0 到 8 之间的随机数,但其中一些是重复的。如何阻止这种情况?
initStateRandom = np.random.randint(9, size=(3,3))
【问题讨论】:
标签: python numpy matrix random
这行代码已经创建了一个 3x3 矩阵,其中填充了 0 到 8 之间的随机数,但其中一些是重复的。如何阻止这种情况?
initStateRandom = np.random.randint(9, size=(3,3))
【问题讨论】:
标签: python numpy matrix random
您可以使用np.random 中的choice 函数,请参阅documentation。
您可以为范围或任何 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”。它就地工作,并且仅沿多维数组的一维工作,因此您需要像这样对临时一维数组进行洗牌:
import numpy as np
tmp=np.arange(9)
np.random.shuffle(tmp)
mat=np.reshape(tmp,[3,3])
【讨论】: