Как повернуть двумерный массив на 90 градусов в Python? 🔀🐍
Для поворота двумерного массива на 90 градусов в Python вы можете использовать библиотеку NumPy. Вот пример кода:
import numpy as np
def rotate_array(array):
rotated_array = np.rot90(array)
return rotated_array
array = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_array = rotate_array(array)
print(rotated_array)
В этом примере мы импортируем библиотеку NumPy и определяем функцию "rotate_array", которая принимает двумерный массив и возвращает повернутый на 90 градусов массив. Затем мы создаем пример массива "array" и вызываем функцию "rotate_array" для его поворота. Результат выводится с помощью функции "print".
После выполнения данного кода, вы получите повернутый на 90 градусов массив:
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]]
Детальный ответ
Как повернуть двумерный массив на 90 градусов в Python
Поворот двумерного массива на 90 градусов может быть полезной операцией при работе с матрицами или изображениями. Вам понадобится решить эту задачу в вашем проекте или в учебных целях? Ниже приведено подробное объяснение, как это сделать с использованием языка программирования Python.
Реализация поворота массива
Для поворота двумерного массива на 90 градусов можно использовать несколько подходов. Один из самых простых и понятных способов - это транспонирование массива, а затем обращение его строк.
def rotate_array(arr):
rows = len(arr)
cols = len(arr[0])
rotated_arr = [[0 for _ in range(rows)] for _ in range(cols)]
for i in range(rows):
for j in range(cols):
rotated_arr[j][rows-i-1] = arr[i][j]
return rotated_arr
В коде выше мы создаем новый массив rotated_arr с размерами, обратными исходному массиву. Затем мы используем двойной цикл для итерации по всем элементам исходного массива и помещаем каждый элемент в правильное место в новом массиве. Для этого мы вычисляем новые индексы, используя формулу rotated_arr[j][rows-i-1] = arr[i][j]
.
Давайте протестируем нашу функцию с примером:
array = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_array = rotate_array(array)
print(rotated_array)
Вывод:
[[7, 4, 1],
[8, 5, 2],
[9, 6, 3]]
Как видите, исходный массив был повернут на 90 градусов против часовой стрелки.
Объяснение работы алгоритма
Алгоритм работает следующим образом:
- Мы создаем новый массив rotated_arr, где количество строк равно количеству столбцов исходного массива, а количество столбцов равно количеству строк исходного массива.
- Затем мы проходим по исходному массиву и помещаем каждый элемент в правильное место в новом массиве. Для этого мы используем формулу
rotated_arr[j][rows-i-1] = arr[i][j]
. Индексы меняются таким образом, что элемент, который находится в позиции (i, j) в исходном массиве, будет помещен в позицию (j, rows-i-1) в новом массиве. - По завершении итераций по исходному массиву, мы возвращаем полученный повернутый массив.
Вывод
Теперь у вас есть полное объяснение того, как повернуть двумерный массив на 90 градусов в Python. Для этого мы использовали подход, основанный на транспонировании массива и обращении его строк. Вы также можете использовать другие методы для выполнения этой операции. Удачи в вашей работе с массивами!