Как повернуть двумерный массив на 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 градусов против часовой стрелки.

Объяснение работы алгоритма

Алгоритм работает следующим образом:

  1. Мы создаем новый массив rotated_arr, где количество строк равно количеству столбцов исходного массива, а количество столбцов равно количеству строк исходного массива.
  2. Затем мы проходим по исходному массиву и помещаем каждый элемент в правильное место в новом массиве. Для этого мы используем формулу rotated_arr[j][rows-i-1] = arr[i][j]. Индексы меняются таким образом, что элемент, который находится в позиции (i, j) в исходном массиве, будет помещен в позицию (j, rows-i-1) в новом массиве.
  3. По завершении итераций по исходному массиву, мы возвращаем полученный повернутый массив.

Вывод

Теперь у вас есть полное объяснение того, как повернуть двумерный массив на 90 градусов в Python. Для этого мы использовали подход, основанный на транспонировании массива и обращении его строк. Вы также можете использовать другие методы для выполнения этой операции. Удачи в вашей работе с массивами!

Видео по теме

Переворачиваем двумерный массив на 90 градусов в одной строке или как транспонировать матрицу

Двумерный массив. Python

Поворот матрицы на 90 градусов 1/3

Похожие статьи:

Как вывести значения в одну строку в Python? 🔥

🐍В чем разница между питоном и анакондой?

🔍 Как выучить язык программирования Питон: 7 простых шагов для успешного освоения

Как повернуть двумерный массив на 90 градусов в Python? 🔀🐍

Как добавить несколько значений в словарь питон: подробное руководство с примерами и советами

🐍 10 примеров того, что можно писать на Python | чем заниматься на питоне 🖥️

Как удалить все нечетные числа в Python 🔄