Скажите, что у меня есть массив NumPy:
a = np.array([0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 9, 10, 11, 12, 13, 13, 13, 14, 15])
И у меня есть длина m = 2
, которую пользователь указывает, чтобы увидеть, есть ли какие-либо повторы этой длины в пределах временного ряда , В этом случае повторы длины m = 2
:
[2, 2]
[5, 5]
[9, 9]
[9, 9]
[13, 13]
И пользователь может изменить это значение на m = 3
, а повторы длины m = 3
:
[9, 9, 9]
[13, 13, 13]
Мне нужна функция, которая либо возвращает индекс, где найдено повторение, либо None
. Так, для m = 3
функция вернет следующий NumPy массив начальных индексов:
[11, 17]
А для m = 4
функция вернет None
. Какой самый простой и быстрый способ выполнить sh это?
Обновление Обратите внимание, что массив не нужно сортировать, и мы не интересует результат после сортировки. Нам нужен только результат из несортированного массива. Ваш результат для m = 2
должен быть таким же для этого массива:
b = np.array([0, 11, 2, 2, 3, 40, 5, 5, 16, 7, 80, 9, 9, 9, 1, 11, 12, 13, 13, 13, 4, 5])