Просто попробуйте понимание списка:
x_3times = np.concatenate([np.arange(0, 5) for x in range(3)])
, где число 3
может быть заменено на любое число n
.
edit
если вы хотите ограничить длину любым числом, вы можете просто сделать:
cutoff = 12
x_3times = np.concatenate([np.arange(0, 5) for x in range(3)])[:cutoff]
, что приведет к:
array([0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1])
Однако это не очень эффективно строка кода, особенно при работе с большими числами. Другой ответ, вероятно, будет сделать генератор:
def generator(arr, n, cutoff=None):
length = len(arr)
if cutoff:
for i in range(cutoff):
yield arr[i%length]
else:
for _ in range(n):
for i in arr:
yield i
array = np.array([x for x in generator(np.arange(0, 5), 3, 12)])