【问题标题】:How do I create a matrix of non-repeating random numbers with numpy, while having a range between these random numbers?如何使用 numpy 创建一个非重复随机数矩阵,同时在这些随机数之间有一个范围?
【发布时间】:2020-09-07 12:56:57
【问题描述】:

这行代码已经创建了一个 3x3 矩阵,其中填充了 0 到 8 之间的随机数,但其中一些是重复的。如何阻止这种情况?

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

【问题讨论】:

    标签: python numpy matrix random


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      【解决方案2】:

      您也可以使用“np.random.shuffle”。它就地工作,并且仅沿多维数组的一维工作,因此您需要像这样对临时一维数组进行洗牌:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多