Я пытаюсь создать последовательность целых чисел, которая повторяет элементы в списке несколько раз, добавляя к ним постоянное смещение после каждого повтора.Генерировать повторяющуюся последовательность целых чисел при добавлении смещения после каждого повторения
У меня есть рамка данных pandas со многими столбцами, которые являются повторяющимися блоками информации о тех же N
особ. Например, столбцы могут быть [age1, age2, age3, ... ageN, height1, height2, height3, ... heightN, ...], и я хочу, чтобы столбцы были связаны с людьми 1 и 4 (например). Я хочу генерировать индексы столбцов для конкретных лиц, чтобы я мог подмножать данные с помощью df.iloc[:, cindices]
.
Следующий код работает, но это довольно уродливо, и я надеялся на более чистое и четкое решение (более Pythonic).
subjects = [1, 4]
N = 11; repeats = 3
columns = np.array([(np.arange(repeats) * N + i) for i in subjects])
cindices = columns.T.flatten()
# Information for individuals 1 & 4 are in these columns:
>> array([ 1, 4, 12, 15, 23, 26])
Или просто: '(предметы + N * np.arange (повторы) [:, None]). Ravel()'. – Divakar
@ Дивакар Да, я приеду к этому ;-) –
Увы, проголосовать за обоих. Оба очень коротких решения. Merci. –