如何从数组中随机选择 N 个项目并将它们与另一个数组中的正确项目相关联?



>我有两个 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-item。 我该怎么做?

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

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

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


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

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

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

稍后你可以选择一个随机样本,它将包含两个相应的元素

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

最新更新