Я ищу способ выбора нескольких фрагментов из массива numpy сразу. Скажем, у нас есть 1D-массив данных и вы хотите извлечь три его части, как показано ниже:
data_extractions = []
for start_index in range(0, 3):
data_extractions.append(data[start_index: start_index + 5])
Впоследствии data_extractions
будет:
data_extractions = [
data[0:5],
data[1:6],
data[2:7]
]
Есть ли способ выполнить вышеописанную операцию без цикла for? Некоторая схема индексирования в numpy, которая позволила бы мне выбрать несколько срезов из массива и вернуть их как многие массивы, скажем, в n + 1-мерном массиве?
Я подумал, что, возможно, я могу реплицировать свои данные, а затем выбрать диапазон из каждой строки, но код ниже вызывает IndexError
replicated_data = np.vstack([data] * 3)
data_extractions = replicated_data[[range(3)], [slice(0, 5), slice(1, 6), slice(2, 7)]