x = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
Вращение на 1 единицу должно дать:Как вы поворачиваете элементы в массиве 2D numpy с помощью единиц 'n'?
x = [[4, 1, 2],
[7, 5, 3],
[8, 9, 6]]
В принципе, я хочу, чтобы сдвинуть каждый круговой слой в массиве с помощью единиц «N».
Я посмотрел на numpy.roll, но не мог понять, использовать его для этого прецедента. Я не могу использовать процедуры вращения изображения, такие как scipy.ndimage.interpolation.rotate, поскольку они меняют форму и не совсем достигают желаемого результата.
Редактировать:
Для матрицы 4 х 4:
x = [[a, b, c, d],
[e, f, g, h],
[i, j, k, l],
[m, n, o, p]]
Вращение на 1 единицу должно дать:
x = [[e, a, b, c],
[i, j, f, d],
[m, k, g, h],
[n, o, p, l]]
Редактировать:
Добавление некоторых clarificati как это работает для произвольных размеров.
Для матрицы N X N, повернутой на 1 единицу, внешнее «кольцо» сначала сдвигается на 1. Та же логика рекурсивно следит за оставшейся внутренней матрицей (N-2) X (N-2).
Я не знаком с numpy, но должен ли массив * rotation * влиять на элементы внутри него? Поскольку у вас есть 9 в исходном массиве, но не во вращающейся версии. Я искренне не уверен, просто спрашиваю, если это может быть ошибкой. – Tagc
Не могли бы вы показать образец для массива 4x4? – Divakar
Можете ли вы проверить свой результат? Предполагается, что это '[[4, 1, 2], [7, 5, 3], [8, 9, 6]]'? Потому что прямо сейчас я не могу понять это ... – Praveen