【问题标题】:How to randomly choose N items from array and associate them with the right item from another array?如何从数组中随机选择 N 个项目并将它们与另一个数组中的正确项目相关联?
【发布时间】:2020-10-14 20:05:14
【问题描述】:

我有两个 numpy 数组,每个数组 4 项。第一个数组的第 i 项与第二个数组的第 i 项相关,依此类推。我需要从第一个数组中随机选择 N 个项目,但我想保持与第二个数组的“关联”,这样如果我从第一个数组中选择第 2 项,则选择第二个数组的第 2 项也是。

我目前正在使用的代码示例:

data = np.array([13170.06, 12552.34,  12420.39, 12336.24])
data2 = np.array([6217.69,  12242.05,  9218.21,  5095.23])

choice = data[np.random.choice(len(data), size=1, replace=False)] #In this way I pick 1 item

基本上,如果代码示例 13170.06,我需要关联诸如choice2 = 6217.69 之类的东西,或者无论如何也要从第二个数组中选择相同的 i 项。 我该怎么做?

【问题讨论】:

    标签: python arrays numpy random


    【解决方案1】:

    如何随机生成索引,然后从两个数组中选择元素。 例如:

    
    index = np.random.randint(len(data))
    
    

    【讨论】:

      【解决方案2】:

      您可以随机选择一个索引,然后在两个数组上使用该索引:

      random_index = np.random.choice(np.arange(len(data)), size=1, replace=False)
      data[random_index]
      data2[random_index]
      

      【讨论】:

        【解决方案3】:

        您可以简单地将两个数组组合成一个 numpy 矩阵

        res = np.vstack((data,data2)).T
        

        稍后您可以选择一个包含两个对应元素的随机样本

        sample = res[np.random.choice(len(data))]
        elem1 = sample[0]
        elem2 = sample[1]
        

        【讨论】:

          猜你喜欢
          • 2023-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-15
          • 2018-05-01
          • 1970-01-01
          相关资源
          最近更新 更多