gpt4 book ai didi

python - 以恒定间隔随机选取索引

转载 作者:行者123 更新时间:2023-12-01 00:12:16 25 4
gpt4 key购买 nike

有没有办法以恒定的间隔随机选择 numpy 数组的索引。

例如,我有一个形状 (1, 150) 的数组,包含 5*30 个元素。我想为每 30 个元素随机选择 x 索引,其中 x<=30。所以,我将从数组中随机选择 x*5 索引。

首先,我尝试使用np.chocie,但我无法使用np.choice,因为它看起来不是恒定的间隔。

我可以对每个元素进行循环迭代,但我觉得这不是有效的方法。

numpy 有什么办法吗?

我尝试了这个,它给出了所需的结果。但我想改进代码

frames_picker = np.zeros(30*5)
samples=[]
for i in range(5):
sample = (np.random.choice(frames_picker[0: 30].shape[0], 5, replace=False))+(i*30)
samples.append(sample)
samples=np.array(samples)
frames_picker[np.sort(samples)]=1

最佳答案

>>> np.random.choice(30, size=(5,5), replace=False) + np.arange(0, 150, 30)[:,None]

array([[ 18, 28, 13, 6, 8],
[ 40, 56, 44, 57, 32],
[ 83, 71, 65, 81, 64],
[114, 115, 97, 90, 106],
[137, 121, 129, 142, 149]])

然后您可以对它们进行拼合和排序。这会为您提供每个区间 [0, 29]、[30, 59]、...、[120, 149] 的 5 个随机索引。

关于python - 以恒定间隔随机选取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59561640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com