phn*_*ntm 9 python numpy sample
是否有一种 Pythonic 方法可以从列表或 numpy 数组中选择 N 个连续元素。
所以假设:
Choice = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
我想通过在选择中随机选择元素 X 以及选择后的 N-1 个连续元素来创建一个长度为 N 的新列表。
因此,如果:
X = 4
N = 4
Run Code Online (Sandbox Code Playgroud)
结果列表将是:
Selection = [5,6,1,2]
Run Code Online (Sandbox Code Playgroud)
我认为类似于以下内容的内容会起作用。
S = []
for i in range(X,X+N):
S.append(Selection[i%6])
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一个 python 或 numpy 函数可以一次选择更有效的元素。
che*_*ner 10
使用itertools,特别是islice和cycle。
start = random.randint(0, len(Choice) - 1)
list(islice(cycle(Choice), start, start + n))
Run Code Online (Sandbox Code Playgroud)
cycle(Choice)是一个无限序列,重复您的原始列表,以便切片start:start + n在必要时换行。