Как сделать круговой сдвиг в numpy У меня есть массив numpy, например a = np.arange(10) как перенести первые n элементы в конец массива? Я нашел эту функцию roll, но похоже, что она делает только противоположное, которое переносит последние элементы n в начало. Ответ 1 Почему не просто roll с отрицательным числом? >>> import numpy as np >>> a = np.arange(10) >>> np.roll(a,2) array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7]) >>> np.roll(a,-2) array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1]) Ответ 2 вы можете использовать отрицательный сдвиг a = np.arange(10) print(np.roll(a, 3)) print(np.roll(a, -3)) возвращает [7, 8, 9, 0, 1, 2, 3, 4, 5, 6] [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
Ответ 1 Почему не просто roll с отрицательным числом? >>> import numpy as np >>> a = np.arange(10) >>> np.roll(a,2) array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7]) >>> np.roll(a,-2) array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])
Ответ 2 вы можете использовать отрицательный сдвиг a = np.arange(10) print(np.roll(a, 3)) print(np.roll(a, -3)) возвращает [7, 8, 9, 0, 1, 2, 3, 4, 5, 6] [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]